小编kor*_*doo的帖子

为什么在转换为不相关的接口时会编译?

interface Printable {}
class BlackInk {}

public class Main {
    public static void main(String args[]) {
        Printable printable = null;
        BlackInk blackInk = new BlackInk();
        printable = (Printable)blackInk;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果编译并运行上述代码,则结果为ClassCastException printable = (Printable)blackInk;.但是,如果将Printable更改为类,则不会编译,因为blackInk无法强制转换为Printable.当Printable是一个接口时,为什么要编译?

java interface classcastexception

8
推荐指数
2
解决办法
1219
查看次数

无法在eclipse调试透视图中查看源代码

我正在调试透视图中移动窗口的排列.之后,无论我在Java透视图中打开哪个.java文件,只有带有main方法的源文件将在调试透视图中打开,我无法弄清楚如何查看其他源文件.

然后,我意外地关闭了主源文件,现在我在调试透视图中看不到任何源代码.

如果我转到Window - > New Editor,或者如果我从导航器中双击Main.java,则没有任何反应.

我将透视图重置为默认值,并在编辑器中显示"没有编辑器描述符,用于id org.eclipse.ui.internal.emptyEditorTab"

java eclipse debugging perspective

7
推荐指数
2
解决办法
9271
查看次数

使用AND和OR进行表达式评估的Java顺序

    boolean a = false;
    boolean b = false;
    boolean c = false;
    boolean bool = (a = true) || (b = true) && (c = true);
    System.out.println("" + a + b + c);
Run Code Online (Sandbox Code Playgroud)

prceding代码打印truefalsefalse.但是,&&操作员的优先级高于||操作员,应首先进行评估,为什么不打印truetruetrue呢?

java expression operators

1
推荐指数
1
解决办法
103
查看次数