Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。


7
Java 8:如何使用流中的异常抛出方法?
假设我有一个类和一个方法 class A { void foo() throws Exception() { ... } } 现在,我想为A流所传递的每个实例调用foo : void bar() throws Exception { Stream<A> as = ... as.forEach(a -> a.foo()); } 问题:如何正确处理异常?该代码无法在我的机器上编译,因为我不处理foo()可能引发的异常。在throws Exception的bar似乎是没用在这里。这是为什么?

10
Spring Boot REST服务异常处理
我正在尝试建立一个大型的REST服务服务器。我们正在使用Spring Boot 1.2.1,Spring 4.1.5和Java8。我们的控制器正在实现@RestController和标准的@RequestMapping注释。 我的问题是Spring Boot为控制器异常设置了默认重定向到/error。从文档: Spring Boot默认提供一个/ error映射,以一种明智的方式处理所有错误,并且在servlet容器中被注册为“全局”错误页面。 对使用Node.js编写REST应用程序已有多年的经验,对我而言,这绝非明智之举。服务端点生成的任何异常都应在响应中返回。我不明白为什么您要发送重定向到最有可能是Angular或JQuery SPA使用者的重定向程序,该使用者仅在寻找答案并且不能或不会对重定向采取任何措施。 我想做的是设置一个可以接受任何异常的全局错误处理程序-有目的地从请求映射方法抛出,或者由Spring自动生成(如果未为请求路径签名找到处理程序方法,则为404),然后返回标准格式的错误响应(400、500、503、404)到客户端,而无需任何MVC重定向。具体来说,我们将处理错误,使用UUID将其记录到NoSQL,然后将正确的HTTP错误代码与JSON主体中的日志条目的UUID返回给客户端。 文档对如何执行此操作一直含糊不清。在我看来,您必须创建自己的ErrorController实现或以某种方式使用ControllerAdvice,但是我所看到的所有示例仍然包括将响应转发到某种错误映射,这没有帮助。其他示例建议您必须列出要处理的每个Exception类型,而不是仅列出“ Throwable”并获取所有内容。 谁能告诉我我错过了什么,或者在没有暗示Node.js更容易处理的前提下为我指出正确的方向?

19
无法识别的SSL消息,纯文本连接?例外
我有一个Java兼容的软件包可以与网络上的https服务器通信。运行编译会产生以下异常: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source) 我认为这是由于与客户端计算机建立的连接不安全。有什么方法可以配置本地计算机或端口以连接到远程https服务器?
172 java  https 

14
这是“足够好”的随机算法吗?如果速度更快,为什么不使用它呢?
我做了一个叫的类QuickRandom,它的工作是快速产生随机数。这很简单:只取旧值,乘以a double,然后取小数部分。 这是我QuickRandom的全部课程: public class QuickRandom { private double prevNum; private double magicNumber; public QuickRandom(double seed1, double seed2) { if (seed1 >= 1 || seed1 < 0) throw new IllegalArgumentException("Seed 1 must be >= 0 and < 1, not " + seed1); prevNum = seed1; if (seed2 <= 1 || …

7
在Eclipse中自动将项目构建到JAR中
我有一个Eclipse项目,我想将我的Java项目自动保留在JAR中。我知道我可以选择将项目导出到JAR。如果我单击右键;但是我真正要寻找的是,就像Eclipse一样,它会自动构建项目的.class文件并将其放置在目标文件夹中;它还应自动构建JAR,并在某些或特定位置复制最新的JAR。 是否可以通过这种方式配置Eclipse以自动构建JAR? 只是为了向大家说清楚,耐心地回答我的问题;我并不是将ANT视为解决方案;就像我已经使用过的一样,但是我希望它可以通过基于时间的触发器或带有更改的立即构建自动启动。
171 java  eclipse  jar 

11
空检查在增强的for循环中
在Java中的for循环中防止空值的最佳方法是什么? 这看起来很丑: if (someList != null) { for (Object object : someList) { // do whatever } } 要么 if (someList == null) { return; // Or throw ex } for (Object object : someList) { // do whatever } 可能没有其他办法。他们是否应该将其放入for构造本身中,如果为null,则不要运行循环?
171 java  syntax  loops  for-loop 

6
我应该使用string.isEmpty()还是“” .equals(string)?
标题基本上说明了一切。我通常会在的同时进行测试string == null,因此我并不真正担心null安全测试。我应该使用哪个? String s = /* whatever */; ... if (s == null || "".equals(s)) { // handle some edge case here } 要么 if (s == null || s.isEmpty()) { // handle some edge case here } 关于这一点-它isEmpty()甚至做得比其他任何事情return this.equals("");或return this.length() == 0;?
171 java  string 

4
使用JavaBeans的地方?
什么是JavaBean,为什么需要它?既然可以创建具有类和接口结构的所有应用程序?为什么我需要豆子?能否给我一些例子,在这些例子中,bean是必不可少的,而不是类和接口? 请在以下上下文中说明Bean的必要性: 湿应用 独立应用
171 java  javabeans 

6
在Java中将XML转换为JSON的最快方法
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使它成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 有什么好的工具可以在Java中快速轻松地将XML转换为JSON?
171 java  xml  json 

2
通用返回类型上限-接口与类-出乎意料的有效代码
这是来自第三方库API的真实示例,但已简化。 与Oracle JDK 8u72一起编译 考虑以下两种方法: <X extends CharSequence> X getCharSequence() { return (X) "hello"; } <X extends String> X getString() { return (X) "hello"; } 两者都报告“未经检查的演员表”警告-我明白原因。让我感到困惑的是为什么我可以打电话 Integer x = getCharSequence(); 它可以编译吗?编译器应该知道Integer没有实现CharSequence。致电 Integer y = getString(); 给出错误(按预期) incompatible types: inference variable X has incompatible upper bounds java.lang.Integer,java.lang.String 有人可以解释为什么将这种行为视为有效吗?有什么用? 客户端不知道此调用是不安全的-客户端的代码在编译时不会发出警告。为何编译器不会对此发出警告/发出错误? 此外,它与此示例有何不同: <X …
171 java  generics  java-8 

22
为什么只有少数几个用Java编写的视频游戏?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 为什么没有很多用Java编写的商业3D视频游戏(不是随机开放源2D游戏)?从理论上讲,这很有意义:您几乎免费地获得了生产力的提高和一个跨平台的应用程序,其中包括大量的Java库和内置的垃圾回收器(尽管我承认我我不确定后者是否是一件好事。那么为什么很少使用它呢?我只能想到为Java平台编写的几个流行的商业游戏。 是因为性能吗?如果是这样,GPU难道不是大部分的繁重工作吗?
171 java 


17
查找Java堆大小和使用的内存的命令行工具(Linux)?
是否有命令行工具(Linux)检查Java应用程序的堆大小(和已用内存)? 我已经尝试通过jmap。但是它提供了信息。关于内部存储器区域,例如Eden / PermGen等,这对我没有用。 我正在寻找类似的东西: 最大内存:1GB 最小内存:256 MB 堆内存:700 MB 使用的内存:460 MB 就这样。我知道我可以在JConsole等中看到它,但是我需要一个命令行工具(无法启用JMX等)。 您知道这样的工具/命令吗?
171 java  linux  performance  memory  heap 

7
Java枚举-为什么使用toString代替名称
如果您在枚举api中查看该方法,name()则会显示: 返回此枚举常量的名称,该名称与在其枚举声明中声明的完全相同。大多数程序员应该优先使用toString方法,因为toString方法可能返回更用户友好的名称。此方法主要设计用于在特殊情况下正确性取决于获得确切名称的特殊情况,具体名称在发行版本之间不会有所不同。 为什么更好用toString()?我的意思是当name()已经是final时,toString可能会被覆盖。因此,如果您使用toString且有人重写它以返回硬编码值,则整个应用程序都将关闭...同样,如果您查看源代码,则toString()方法也将仅返回名称。这是同一件事。
171 java  enums 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.