Questions tagged «java»

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

15
Hibernate引发MultipleBagFetchException-无法同时获取多个包
Hibernate在创建SessionFactory时抛出此异常: org.hibernate.loader.MultipleBagFetchException:无法同时获取多个包 这是我的测试用例: Parent.java @Entity public Parent { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy="parent", fetch=FetchType.EAGER) // @IndexColumn(name="INDEX_COL") if I had this the problem solve but I retrieve more children than I have, one child is null. private List<Child> children; } Child.java @Entity public Child { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; …
471 java  hibernate  jpa  one-to-many  bag 


25
抛出异常的Java 8 Lambda函数?
我知道如何创建对具有String参数的方法的引用,并返回int,它是: Function<String, Integer> 但是,如果该函数引发异常,则将其定义为: Integer myMethod(String s) throws IOException 我将如何定义此参考?
469 java  lambda  java-8 

29
我应该如何解释接口和抽象类之间的区别?
在我的一次采访中,我被要求解释Interface和Abstract类之间的区别。 这是我的回应: Java接口的方法是隐式抽象的,不能具有实现。Java抽象类可以具有实现默认行为的实例方法。 在Java接口中声明的变量默认为final。抽象类可能包含非最终变量。 默认情况下,Java接口的成员是公共的。Java抽象类可以具有类成员的常用风格,例如private,protected等。 Java接口应使用关键字“ implements”来实现;Java抽象类应使用关键字“ extends”进行扩展。 一个接口只能扩展另一个Java接口,一个抽象类可以扩展另一个Java类并实现多个Java接口。 Java类可以实现多个接口,但只能扩展一个抽象类。 但是,面试官并不满意,并告诉我该描述表示“ 书本知识 ”。 他要求我提供更实际的答复,并通过实际示例说明何时在接口上选择抽象类。 我哪里做错了?

7
如何将迭代器转换为流?
我正在寻找一种Iterator将a 转换为Stream或更具体地以将“迭代器”作为流“查看”的简洁方法。 出于性能原因,我想避免在新列表中复制迭代器: Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection<String> copyList = new ArrayList<String>(); sourceIterator.forEachRemaining(copyList::add); Stream<String> targetStream = copyList.stream(); 根据评论中的一些建议,我也尝试使用Stream.generate: public static void main(String[] args) throws Exception { Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Stream<String> targetStream = Stream.generate(sourceIterator::next); targetStream.forEach(System.out::println); } 但是,我得到了NoSuchElementException(因为没有调用hasNext) Exception in thread "main" java.util.NoSuchElementException at java.util.AbstractList$Itr.next(AbstractList.java:364) at Main$$Lambda$1/1175962212.get(Unknown …
468 java  iterator  java-8 

30
反转Java中的字符串
我"Hello World"保存在一个名为的String变量中hi。 我需要打印,但是要反转。 我怎样才能做到这一点?我知道Java中已经内置了某种功能。 相关:用Java反转“ Hello World”字符串的每个单词
467 java  string 

18
更改Java字符串中的日期格式
我String代表一个约会。 String date_s = "2011-01-18 00:00:00.0"; 我想将其转换为a Date并以YYYY-MM-DD格式输出。 2011-01-18 我该如何实现? 好的,根据我在下面检索到的答案,这是我尝试过的事情: String date_s = " 2011-01-18 00:00:00.0"; SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss"); Date date = dt.parse(date_s); SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd"); System.out.println(dt1.format(date)); 但是它输出的02011-00-1不是期望的2011-01-18。我究竟做错了什么?

9
实现Map并保持插入顺序的Java类?
我正在寻找具有键值关联的Java类,但不使用哈希。这是我目前正在做的事情: 将值添加到中Hashtable。 获取的迭代器Hashtable.entrySet()。 遍历所有值和: Map.Entry为迭代器获取一个。 Module根据该值创建类型的对象(自定义类)。 将类添加到JPanel。 显示面板。 这样做的问题是我无法控制获取值的顺序,因此无法按给定顺序显示值(没有对顺序进行硬编码)。 我会为此使用ArrayListor Vector,但是稍后在代码中,我需要获取Module给定Key 的对象,而使用ArrayListor 不能实现Vector。 有谁知道一个免费/开放源代码的Java类可以做到这一点,还是一种从添加值中获取值的方式Hashtable? 谢谢!

8
Java 8 Iterable.forEach()与foreach循环
Java 堆栈:Java 8:чтолучше? 以下哪个是Java 8中的最佳实践? Java 8: joins.forEach(join -> mIrc.join(mSession, join)); Java 7: for (String join : joins) { mIrc.join(mSession, join); } 我有很多可以用lambda简化的for循环,但是使用它们真的有任何优势吗?会提高其性能和可读性吗? 编辑 我还将这个问题扩展到更长的方法。我知道您无法从lambda返回或中断父函数,在比较它们时也应考虑到这一点,但是还有其他需要考虑的地方吗?



2
使用JAX-RS和Jersey进行基于REST令牌的身份验证的最佳实践
我正在寻找一种在Jersey中启用基于令牌的身份验证的方法。我正在尝试不使用任何特定的框架。那可能吗? 我的计划是:用户注册我的Web服务,我的Web服务生成令牌,并将其发送给客户端,客户端将保留它。然后,对于每个请求,客户端将发送令牌,而不是用户名和密码。 我正在考虑为每个请求使用自定义过滤器, @PreAuthorize("hasRole('ROLE')") 但是我只是认为这会导致对数据库的大量请求检查令牌是否有效。 还是不创建过滤器,并在每个请求中放置一个参数令牌?这样每个API都会先检查令牌,然后再执行一些操作来检索资源。

14
春季:@Component与@Bean
我了解到@Component注释是在Spring 2.5中引入的,目的是通过使用类路径扫描摆脱xml bean的定义。 @Bean 是在3.0版本中引入的,可以与 @Configuration以完全摆脱xml文件并改用java config。 是否有可能重新使用@Component注释而不是引入@Bean注释?我的理解是,两种情况下的最终目标都是创建bean。


30
针对检查异常的情况
多年以来,我一直无法获得以下问题的正确答案:为什么有些开发人员反对检查异常?我进行了无数对话,阅读了博客上的东西,阅读了布鲁斯·埃克尔(Bruce Eckel)所说的话(我看到的第一个反对他们的人)。 我目前正在编写一些新代码,并非常注意我如何处理异常。我正在尝试查看“我们不喜欢检查的异常”人群的观点,但我仍然看不到它。 我的每一次对话都以相同的问题为结尾而结束...让我进行设置: 总体而言(根据Java的设计方式), Error 用于永远不应该抓到的东西(VM有花生过敏症,有人在上面撒了一罐花生) RuntimeException 用于程序员做错了的事情(程序员走出了数组的结尾) Exception(除外RuntimeException)用于程序员无法控制的事情(写入文件系统时磁盘已满,已达到该进程的文件句柄限制,并且您无法打开任何其他文件) Throwable 只是所有异常类型的父级。 我听到的一个常见论点是,如果发生异常,那么开发人员要做的就是退出程序。 我听到的另一个常见论点是,检查异常会使重构代码更加困难。 对于“我要做的就是退出”参数,我说即使您要退出,也需要显示一条合理的错误消息。如果您只是在处理错误,那么当程序退出时如果没有明确说明原因的话,您的用户将不会过分高兴。 对于“它很难重构”人群,这表明未选择适当的抽象级别。与其声明方法不会引发IOException,不IOException应该将转换为更适合发生的异常。 我在将Main换成catch(Exception)(或在某些情况下catch(Throwable)确保程序可以正常退出)时没有问题-但我始终会捕获所需的特定异常。这样做至少可以显示一个适当的异常。错误信息。 人们从不回覆的问题是: 如果您抛出RuntimeException 子类而不是Exception 子类,那么您如何知道应该掌握什么呢? 如果答案是Exception问题,那么您也将以与系统异常相同的方式处理程序员错误。对我来说这似乎是错误的。 如果您发现了问题,Throwable那么您将以相同的方式处理系统异常和VM错误(等等)。对我来说这似乎是错误的。 如果答案是仅捕获已知的异常,那么您如何知道抛出了哪些异常?当程序员X抛出一个新异常而忘记捕捉它时,会发生什么?对我来说这很危险。 我会说显示堆栈跟踪的程序是错误的。不喜欢检查异常的人会不会有这种感觉? 因此,如果您不喜欢检查异常,是否可以解释为什么不这样做并回答未得到回答的问题? 编辑:我不是在寻找关于何时使用任何一种模型的建议,我正在寻找的是人们为什么从中扩展,RuntimeException因为他们不喜欢从中扩展Exception和/或为什么他们捕获异常,然后重新抛出RuntimeException而不是向其添加抛出他们的方法。我想了解不喜欢检查异常的动机。

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.