Tag: 未选中

递归generics

有没有办法使这种方法适当通用并取消警告? /** * Sort a collection by a certain “value” in its entries. This value is retrieved using * the given valueFunction which takes an entry as argument and returns * its value. * * Example: * // sort tiles by number *Collects.sortByValue(tileList, true, new Function() { * public Integer call(NormalTile t) { * return […]

Java“unchecked调用compareTo(T)作为原始类型java.lang.Comparable的成员”

我正在尝试将排序列表实现为Java中的简单练习。 为了使它具有通用性,我有一个add(Comparable obj)所以我可以在任何实现Comparable接口的类中使用它。 但是,当我在代码中的任何地方使用obj.compareTo(…)时,我从编译器中获取”unchecked call to compareTo(T) as a member of the raw type java.lang.Comparable” (使用-Xlint:unchecked选项) )。 代码工作正常,但我无法弄清楚如何摆脱这个烦人的消息。 任何提示?

Javaexception处理的良好实践

我有一些关于在Java中处理exception的问题。 我读了一下它并得到了一些矛盾的指导方针。 exception处理的最佳实践 我们来看看上面提到的文章: 它声明, 如果“客户端代码无法执行任何操作”,通常应避免使用已检查的exception。 但它究竟意味着什么? 在GUI中显示错误消息是否足以引发检查exception的原因? 但它会迫使GUI程序员记住捕获RuntimeExceptions及其后代以显示潜在的错误信息。 本文中提出的第二种观点是,除非我想在其中实现一些海关领域/方法,否则应该避免发明自己的exception类。 我通常不同意这一点,我今天的练习恰恰相反:我在我自己的exception结构中包含exception,以反映我编写的类实现的目标,即使它们只是在不添加任何新方法的情况下扩展Exception。 我认为在抛出更高层时更灵活地处理它们对于使用这些类的程序员来说通常更清晰易懂。 我今天实现了一些代码,这篇文章在抛出RuntimeException的文章中提出了“新方法”,然后让Sonar分析它。 为了让我更加困惑,Sonar将我的RuntimeExceptions标记为主要错误,并标记为“避免在自己的类型中抛出root类型exception,wrap’em”。 所以它看起来很有争议,你怎么看? 我还从今天的技术主管之一那里得知,只是包装exception是不好的,因为这对JVM来说是一个非常昂贵的操作。 对我来说,另一方面,在任何地方抛出SQLExceptions或IOExceptions看起来像是一些打破封装。 那么你对我在这里提出的问题的一般态度是什么? 何时在我自己的类型中包装exception,何时不应该这样做? 那个‘客户端无法做到这一点的地方,抛出运行时exception? “ 性能问题怎么样?