下面的代码无法编译,为什么?
System.out.println(Void.class instanceof Class);
这也不会编译
//according to oracle doc, the type of Void.TYPE is Class<Void>
System.out.println(Void.TYPE instanceof Class);
错误信息是
VoidTest.java:6: inconvertible types found : java.lang.Class<java.lang.Void> required: Class System.out.println(Void.TYPE instanceof Class);
我正在使用 Darwin 内核版本 12.4.0 和 Java 版本“1.6.0_51”
他们不会使用 emacs + java + javac 进行编译
他们使用在线 repl 编译得很好:http://www.javarepl.com/console.html http://www.javarepl.com/console.html或者在我的机器上使用 eclipse
正在将评论升级为答案...
我能够重复编译器错误,直到我注意到我有一个Class.class
我的目录中的文件(可能来自尝试分析过去的 StackOverflow 问题)。
我删除了该文件,然后它编译并运行得很好。
$ javac Main.java
Main.java:7: inconvertible types
found : java.lang.Class<java.lang.Void>
required: Class
System.out.println(Void.class instanceof Class);
^
Main.java:8: inconvertible types
found : java.lang.Class<java.lang.Void>
required: Class
System.out.println(Void.TYPE instanceof Class);
^
2 errors
$ rm Class.class
$ javac Main.java
$ java Main
true
true
一些定制Class
类优先于内置类java.lang.Class
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)