Questions tagged «java»

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


5
如果findFirst()找到的第一个元素为null,为什么会抛出NullPointerException?
为什么这样抛出java.lang.NullPointerException? List<String> strings = new ArrayList<>(); strings.add(null); strings.add("test"); String firstString = strings.stream() .findFirst() // Exception thrown here .orElse("StringWhenListIsEmpty"); //.orElse(null); // Changing the `orElse()` to avoid ambiguity 中的第一项strings是null,这是一个完全可以接受的值。此外,findFirst()返回Optional,这对于findFirst()能够处理nulls更有意义。 编辑:更新了orElse()以减少歧义。

6
JSR 303验证,如果一个字段等于“ something”,则这些其他字段不应为null
我正在使用JSR-303做一些自定义验证javax.validation。 我有一个领域。而且,如果在此字段中输入了某个值,则我希望不包含其他一些字段null。 我正在尝试解决这个问题。不确定我该如何称呼以帮助找到解释。 任何帮助,将不胜感激。我对此很陌生。 目前,我正在考虑自定义约束。但是我不确定如何从批注中测试相关字段的值。基本上我不确定如何从注释访问面板对象。 public class StatusValidator implements ConstraintValidator<NotNull, String> { @Override public void initialize(NotNull constraintAnnotation) {} @Override public boolean isValid(String value, ConstraintValidatorContext context) { if ("Canceled".equals(panel.status.getValue())) { if (value != null) { return true; } } else { return false; } } } 这panel.status.getValue();给我带来麻烦..不确定如何完成此任务。


6
在SQL中使用StringBuilder的正确方法
我刚刚在我的项目中发现了一些这样的sql查询构建: return (new StringBuilder("select id1, " + " id2 " + " from " + " table")).toString(); 这是否StringBuilder达到其目标,即减少内存使用量? 我对此表示怀疑,因为在构造函数中使用了“ +”(字符串concat运算符)。像下面的代码那样,将占用与使用String相同的内存量吗?我了解,使用时有所不同StringBuilder.append()。 return "select id1, " + " id2 " + " from " + " table"; 两条语句的内存使用量是否相等?请澄清。 提前致谢! 编辑: 顺便说一句,这不是我的代码。在一个旧项目中发现它。而且,查询的大小不如我的示例中的查询小。:)


8
获取与int值关联的枚举
以前,我将LegNo枚举定义为: NO_LEG, LEG_ONE, LEG_TWO 通过调用return LegNo.values()[i];,我可以获得与每个枚举关联的值。 但是现在我决定让LegNo枚举NO_LEG是int -1而不是0,所以我决定使用私有构造函数进行初始化并设置其int值 NO_LEG(-1), LEG_ONE(1), LEG_TWO(2); private LegNo(final int leg) { legNo = leg; } 现在唯一的事情就是因为我这样做,所以该values()方法不适用于NO_LEG枚举。我如何获得与int相关联的枚举?除了使用case switch语句或if-elseif-elseif之外,还有其他有效的方法吗? 我可以看到很多与从枚举获取int值有关的SO问题,但我反其道而行之。
88 java  enums 

9
Java错误:未为默认构造函数定义隐式超级构造函数
我有一些简单的Java代码,其结构与此类似: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String someString) { super(someString); } public String getName() { return "name value for ASubClass"; } } 我将有很多子类BaseClass,每个子类以getName()自己的方式(模板方法模式)实现方法。 这很好用,但是我不喜欢子类中有多余的构造函数。输入更多,难以维护。如果要更改BaseClass构造函数的方法签名,则必须更改所有子类。 当我从子类中删除构造函数时,出现此编译时错误: Implicit super constructor …

7
如何找到在Eclipse中实现特定接口的类?
我有一个具有许多依赖项的JAR文件应用程序。由于某种原因,我需要反编译其中一个库,并使用Eclipse将其打开。对于项目中的给定接口,是否可以找到实现它的类?该接口可能是在我尚未反编译的其他库中实现的。是否可以针对此类课程呢?


5
增加热液空间
我正在使用tomcat 6.0,并且在建立索引(而不是在我启动tomcat时)时,出现了permgen空间错误。 我如何增加空间? 谢谢
88 java  tomcat  tomcat6  permgen 

16
阻止WebView显示“网页不可用”
我有一个可以广泛使用WebView的应用程序。当此应用程序的用户没有Internet连接时,将显示一个页面,显示“网页不可用”和其他各种文字。有没有办法在我的WebView中不显示此通用文本?我想提供自己的错误处理。 private final Activity activity = this; private class MyWebViewClient extends WebViewClient public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // I need to do something like this: activity.webView.wipeOutThePage(); activity.myCustomErrorHandling(); Toast.makeText(activity, description, Toast.LENGTH_LONG).show(); } } 我发现WebView-> clearView实际上并未清除视图。
88 java  android 

2
接口和类的'instanceof'运算符的行为不同
我想知道有关instanceofJava 中运算符的以下行为。 interface C {} class B {} public class A { public static void main(String args[]) { B obj = new B(); System.out.println(obj instanceof A); //Gives compiler error System.out.println(obj instanceof C); //Gives false as output } } 为什么会这样呢?interface C和之间没有关系class B,但是它给出false,而如果obj instanceof A给出编译器错误?

16
将tomcat和eclipse集成为热部署环境
我想以集成方式设置eclipse和tomcat,这样就可以立即反映出对我的JSP和servlet(如果可能)的更改,而无需进行部署。 好的,这是在整个互联网上都有很多答案的那些问题之一,但是它们似乎都不同。(使用Sysdeo插件,使用JBOss插件,使用过时的Eclipse进行操作,改用MyEclipse等),我找不到要引用的1个权威性资源。因此,出于我的利益,最简单,最推荐的设置程序是什么? 假设我有eclipse和tomcat独立运行。实际上,我已经按照此处的说明以非热部署方式集成了它们:http : //www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/index.html Eclipse版本版本:3.4.2(Ganymede)Tomcat v6.0.20
88 java  eclipse  tomcat 

4
Java使用数组的速度是C ++中std :: vector的8倍。我做错什么了?
我有以下带有几个大数组的Java代码,这些数组永远不会改变其大小。它在我的计算机上运行1100毫秒。 我在C ++中实现了相同的代码并使用了std::vector。 在我的计算机上,运行完全相同的代码的C ++实现的时间为8800 ms。我做错了什么,所以运行缓慢? 基本上,代码执行以下操作: for (int i = 0; i < numberOfCells; ++i) { h[i] = h[i] + 1; floodedCells[i] = !floodedCells[i]; floodedCellsTimeInterval[i] = !floodedCellsTimeInterval[i]; qInflow[i] = qInflow[i] + 1; } 它遍历大小约为20000的不同数组。 您可以在以下链接下找到这两种实现: Java:https://ideone.com/R8KqjT C ++:https://ideone.com/Lu7RpE (由于时间限制,在ideone上,我只能运行400次而不是2000次循环。但是即使在这里,相差三倍)

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.