我想按长度订购字符串的ArrayList,但不仅仅是按数字顺序。 比如说,列表包含以下单词: cucumber aeronomical bacon tea telescopic fantasmagorical 它们需要按长度差异排序为特殊字符串,例如: intelligent 所以最终的列表看起来像这样(括号中的差异): aeronomical (0) telescopic (1) fantasmagorical (3) – give priority to positive differences? doesn’t really matter cucumber (3) bacon (6) tea (8)
这个问题出现在一个匿名用户低估了我的一个涉及KeyListeners的答案并建议使用Key Bindings时。 这位匿名用户告诉我,KeyListener接口是一个旧的AWT解决方案,不应该使用。 但是,我不知道我是否应该完全相信这些信息。 我已经在各种网站上进行了研究,包括oracle,并且没有发现关于KeyListeners或Key Bindings的function。 我知道这两个人执行类似的任务这一事实,但我不确定“幕后”到底发生了什么,可以这么说。 我倾向于在未来的项目中使用Key Bindings,仅仅是因为我获得的研究表明KeyListener接口要求相关组件具有焦点而Key Bindings没有。 但是,我很困惑。 为什么会这样? Key Bindings的触发方式与KeyListeners的触发方式有何不同? PS我很确定这很罕见,但在某些情况下使用KeyListeners更合适吗?
在C / C ++中,我们使用静态局部变量来维护方法的状态。 但是为什么Java不支持它? 是的,我可以为此目的使用静态字段。 但创建一个只保留一个方法状态的字段是不是有点奇怪?
我在Scala中使用Drools Planner(用Java编写)时遇到了问题。 Drools规划器中的一个接口声明为: public interface Score extends Comparable 但是另一个界面使用’Score’作为原始类型: public interface Solution { Score getScore(); 然后我想在Scala中实现这个接口: class MySolution extends Solution { def getScore: Score = … 我收到编译错误:Scala编译器不允许编写’def getScore:Score’。 当我尝试添加’Score [_]’或’Score [whatever]’编译器抱怨类型不兼容时。 我该怎么办?
为什么Java EE 6 CDI缺少@ViewScoped和@FlashScoped注释? (特别是前者让我很奇怪,因为CDI源于Seam世界,它已经知道了非常相似的ScopeType.PAGE …) 使用CDI时建议的解决方法是什么? 使用Seam 3? 谢谢
public class CallingStaticMethod { public static void method() { System.out.println(“I am in method”); } public static void main(String[] args) { CallingStaticMethod csm = null; csm.method(); } } 有人可以解释如何在上面的代码中调用静态方法吗?
如何迭代可变长度的Java数组。 我想我会设置一个while循环,但是如何检测到我已到达数组的末尾。 我想我想要这样的东西[只需要弄清楚如何表示myArray.notEndofArray()] index = 0; while(myArray.notEndofArray()){ system.out.println(myArray(index)); index++; }
关于在Java中重新抛出exception,我有一个非常简单的问题。 这是代码片段: public static void main(String[] args) throws FileNotFoundException { try { FileReader reader = new FileReader(“java.pdf”); } catch (FileNotFoundException ex) { throw ex; } } public static void main(String[] args) throws FileNotFoundException { FileReader reader = new FileReader(“java.pdf”); } 为什么我们需要在第一个版本中重新抛出ex ,而第二个版本看起来更优雅? 什么可能是好处,哪个版本比另一个更受欢迎?
我想用整个屏幕创建一个矩形。 通过使用整个屏幕,我的意思是这样的: 首先,是否可以在Java中使用整个屏幕? 第二,我该怎么做呢? 另一件事,我不想绘制一个实际的矩形,我想创建on,就像在新的java.awt.Rectangle 。
我有一个Outer类,有一个private Inner类。 在我的Outer类方法中,我实例化Inner类,如下所示: Outer outer = new Outer(); Inner inner = outer.new Inner(); 编译器将此代码转换为: Outer outer = new Outer(); Inner inner = new Inner(outer, null); 使用reflection显示Inner类具有以下合成构造函数: private Outer$Inner(Outer) Outer$Inner(Outer,Outer$Inner) 由于Inner类是private ,编译器会将private构造函数添加到它,因此没有人可以实例化该类。 但显然Outer类应该能够实例化它,因此编译器会添加其他包私有构造函数,后者又调用私有构造函数。 此外,由于package-private构造函数在其名称中包含$ ,因此普通Java代码无法调用它。 问题:为什么要合成一个私有和一个包私有构造函数? 为什么不合成package-private构造函数并用它完成呢?