Questions tagged «java»

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

15
什么时候应该对方法参数和局部变量使用final?
我发现了一些参考(例如),它们建议final尽可能多地使用它,我想知道这有多重要。这主要是在方法参数和局部变量的上下文中,而不是最终方法或类。对于常量,这很明显。 一方面,编译器可以进行一些优化,使程序员的意图更加清晰。另一方面,它增加了冗长性,并且优化可能是微不足道的。 我需要努力记住的东西吗?
171 java  final 

8
为什么Java允许我们编译名称与文件名不同的类?
我有一个文件Test.java和其中的以下代码。 public class Abcd { //some code here } 现在,该类无法编译,但是当我删除public修饰符时,它可以正常编译。 Java背后的原因是,允许我们编译一个与文件名不公开的文件名不同的类名。 我知道这是一个新手问题,但我找不到很好的解释。
170 java 

15
致命错误编译:无效的目标版本:1.8-> [帮助1]
类似的问题,例如在无效目标版本上发布的问题:1.7,但是在关注博客之后,我的问题仍然没有解决。 无法在项目hm_app上执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:compile(默认编译):致命错误编译:无效目标版本:1.8-> [帮助1] 遇到此问题时,我正在按照教程进行操作。 abt java & mvn C:\mvn>echo %JAVA_HOME% C:\mvn>echo %JRE_HOME% C:\mvn>echo %MAVEN_HOME% yields 输出 C:\Program Files\Java\jdk1.7.0_51 C:\Program Files\Java\jre7 C:\apache-maven-3.0.4
170 java  maven 

8
如何获取活动用户的UserDetails
在我的控制器中,当我需要活动(登录)用户时,我正在执行以下操作以获取UserDetails实现: User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); log.debug(activeUser.getSomeCustomField()); 它工作正常,但我认为Spring在这种情况下可以使生活更轻松。有没有办法将UserDetails自动接线连接到控制器或方法中? 例如,类似: public ModelAndView someRequestHandler(Principal principal) { ... } 但是UsernamePasswordAuthenticationToken我得到了,UserDetails而不是得到了? 我正在寻找一个优雅的解决方案。有任何想法吗?

6
Java异常未捕获?
我对try-catch结构有一个小的理论问题。 我昨天参加了有关Java的实践考试,但我不理解以下示例: try { try { System.out.print("A"); throw new Exception("1"); } catch (Exception e) { System.out.print("B"); throw new Exception("2"); } finally { System.out.print("C"); throw new Exception("3"); } } catch (Exception e) { System.out.print(e.getMessage()); } 问题是“输出将是什么样?” 我很确定这将是AB2C3,但请注意,这不是事实。 正确的答案是ABC3(经过测试,实际上就是这样)。 我的问题是,Exception(“ 2”)放在哪里?

10
NoClassDefFoundError:android.support.v7.internal.view.menu.MenuBuilder
运行Android 4.2的Samsung设备上的Android appcompat v7库存在问题。我在开发人员控制台中通过以下堆栈跟踪不断崩溃: java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder at android.support.v7.widget.PopupMenu.<init>(PopupMenu.java:66) at com.[my-package-name].CustomActivity$5.onClick(CustomActivity.java:215) at android.view.View.performClick(View.java:4222) at android.view.View$PerformClick.run(View.java:17620) at android.os.Handler.handleCallback(Handler.java:800) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5391) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) 这是CustomActivity.java的第215行: PopupMenu popup = new PopupMenu(CustomActivity.this, mImageViewMenu); 崩溃来自一系列设备,但始终是三星,并且始终是Android 4.2。 快速的网络搜索使我相信很多人都遇到相同的问题,我尝试解决的一些步骤包括: 检查Android项目属性,确保正确添加了appcompat库。 检查Java Build Path Order和Export项目属性,确保已选中Android Dependencies和Android …

17
用Java对数组排序
我正在尝试制作一个包含10个整数的数组的程序,到目前为止,它们都具有随机值。 但是,现在我需要按从最低到最高的顺序对它们进行排序,然后将其打印到屏幕上,我该怎么做呢? (对一个程序这么小的代码感到抱歉,我对循环不好,只是开始使用Java) public static void main(String args[]) { int [] array = new int[10]; array[0] = ((int)(Math.random()*100+1)); array[1] = ((int)(Math.random()*100+1)); array[2] = ((int)(Math.random()*100+1)); array[3] = ((int)(Math.random()*100+1)); array[4] = ((int)(Math.random()*100+1)); array[5] = ((int)(Math.random()*100+1)); array[6] = ((int)(Math.random()*100+1)); array[7] = ((int)(Math.random()*100+1)); array[8] = ((int)(Math.random()*100+1)); array[9] = ((int)(Math.random()*100+1)); System.out.println(array[0] +" " + array[1] …
170 java  arrays 

9
如何使我的Maven集成测试运行
我有一个maven2多模块项目,并且在每个子模块中都有分别命名的JUnit测试Test.java和Integration.java单元测试和集成测试。当我执行时: mvn test *Test.java子模块中的所有JUnit测试都将执行。当我执行 mvn test -Dtest=**/*Integration 没有一个Integration.java测试在子模块中执行。 这些命令对我来说似乎是完全相同的命令,但是带有-Dtest = / * Integration **的命令不起作用,它显示在父级别运行0个测试,而没有任何测试

4
Java正则表达式捕获组
我试图理解此代码块。在第一个中,我们在表达式中寻找什么? 我的理解是,它是任意字符(0或多次*),后跟0到9之间的任意数字(1或多次+),后跟任意字符(0或多次*)。 执行此操作时,结果为: Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT300 Found value: 0 有人可以和我一起经历这个吗? 使用捕获组的优点是什么? import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTut3 { public static void main(String args[]) { String line = "This order was placed for QT3000! OK?"; String …
170 java  regex 

6
按Java 8流API分组
我尝试在Java 8流API中找到一种简单的方法来进行分组,我提出了这种复杂的方法! List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, List<String>> collect = list.stream().collect( Collectors.groupingBy(o -> o)); System.out.println(collect); List<String[]> collect2 = collect .entrySet() .stream() .map(e -> new String[] { e.getKey(), String.valueOf(e.getValue().size()) }) .collect(Collectors.toList()); collect2.forEach(o -> System.out.println(o[0] + " >> " + o[1])); 感谢您的投入。

5
箭头运算符'->'在Java中有什么作用?
在搜寻一些代码时,我遇到了箭头运算符,它究竟是做什么的?我以为Java没有箭头运算符。 return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> { return Car.SEDAN == ((Car)arg0).getStyle(); }); 详细信息:Java 6,Apache Commons Collection,IntelliJ 12 更新/答案:事实证明IntelliJ 12支持Java 8,后者支持lambda,并且正在“折叠”谓词并将其显示为lambda。下面是“展开”代码。 return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() { public boolean evaluate(Object arg0) { return Car.SEDAN == ((Car)arg0).getStyle(); } });

7
不可变与不可修改的集合
从集合框架概述中: 类别不支持修改操作(如add,remove和clear)被称为不可修改的。不可修改的集合是可修改的。 额外保证Collection对象的任何变化都不可见的集合称为不可变的。不变的集合是可变的。 我不明白区别。这里不可修改和不可变 之间有什么区别?

7
Mockito.any()通过泛型接口
是否可以通过泛型传递接口的类型? 界面: public interface AsyncCallback<T> 在我的测试方法中: Mockito.any(AsyncCallback.class) 把<ResponseX>后面或.class没有工作。
170 java  generics  mockito 


21
加入是为了懒惰的人?
我最近与另一位开发人员进行了讨论,该开发人员向我声称JOIN(SQL)是无用的。从技术上讲,这是正确的,但他补充说,使用联接比在代码(C#或Java)中发出多个请求和链接表效率低。 对于他来说,加入是针对那些不在乎性能的懒惰的人。这是真的?我们应该避免使用联接吗?
169 c#  java  sql  join 

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.