Tag: java 7

我应该如何在JDBC中使用try-with-resources?

我有一个使用JDBC从数据库中获取用户的方法: public List<User> getUser(int userId) { String sql = "SELECT id, name FROM users WHERE id = ?"; List<User> users = new ArrayList<User>(); try { Connection con = DriverManager.getConnection(myConnectionURL); PreparedStatement ps = con.prepareStatement(sql); ps.setInt(1, userId); ResultSet rs = ps.executeQuery(); while(rs.next()) { users.add(new User(rs.getInt("id"), rs.getString("name"))); } rs.close(); ps.close(); con.close(); } catch (SQLException e) { e.printStackTrace(); } […]

Java错误:比较方法违反了它的一般合同

我看到很多关于这个的问题,并试图解决这个问题,但经过一个小时的谷歌search和大量的试验和错误,我仍然无法修复。 我希望你们中的一些人能够解决问题。 这是我得到的: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453) at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:392) at java.util.ComparableTimSort.sort(ComparableTimSort.java:191) at java.util.ComparableTimSort.sort(ComparableTimSort.java:146) at java.util.Arrays.sort(Arrays.java:472) at java.util.Collections.sort(Collections.java:155) … 这是我的比较: @Override public int compareTo(Object o) { if(this == o){ return 0; } CollectionItem item = (CollectionItem) o; Card card1 = CardCache.getInstance().getCard(cardId); Card card2 = CardCache.getInstance().getCard(item.getCardId()); if (card1.getSet() < card2.getSet()) […]

用Javarecursion列出文件

我如何recursion列出在Java目录下的所有文件? 框架是否提供任何实用工具? 我看到很多hacky的实现。 但是没有一个来自框架或者nio

javafx 8兼容性问题 – FXML静态字段

我devise了一个javafx应用程序,它在jdk 7中工作正常。当我尝试在java 8中运行它时,出现以下exception: javafx.fxml.LoadException: at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2595) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3230) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3191) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3164) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3140) at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3132) Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Root cannot be null at javafx.scene.Scene.<init>(Scene.java:364) at javafx.scene.Scene.<init>(Scene.java:232) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:204) at javafx.concurrent.EventHelper.fireEvent(EventHelper.java:219) at javafx.concurrent.Task.fireEvent(Task.java:1357) […]

Java 7中的钻石操作符有什么意义?

Java 7中的钻石操作符允许如下代码: List<String> list = new LinkedList<>(); 但是在Java 5/6中,我可以简单地写出: List<String> list = new LinkedList(); 我对types擦除的理解是这些完全一样。 (无论如何,这个generics在运行时会被删除)。 为什么要钻石呢? 它允许什么新的function/types安全? 如果它不产生任何新的function,为什么他们提到它作为一个function? 我对这个概念的理解是否有缺陷?

在Java 8中使用LogManager(l4j2)时出错(java.lang.reflect.AnnotatedElement无法解析)

当我将一个新项目的JDK版本从7u45切换到8u20时,我遇到了一个奇怪的错误。 在我的课程开始时,一个无害的LogManager声明被拒绝,错误如下: The type java.lang.reflect.AnnotatedElement cannot be resolved. It is indirectly referenced from required .class files 这是代码: public class Class1 { private static Logger log = LogManager.getLogger(Class1.class); … Eclipse建议我配置构建路径,但我不知道要配置什么,因为我不知道该错误的基本问题。 使用版本7的JDK,一切工作正常。