作者:换个风格回复 | 来源:互联网 | 2023-05-19 08:39
下面的代码不会编译,为什么?System.out.println(Void.classinstanceofClass);这也不会编译accordingtooracledoc,the
下面的代码不会编译,为什么?
System.out.println(Void.class instanceof Class);
这也不会编译
//according to oracle doc, the type of Void.TYPE is Class
System.out.println(Void.TYPE instanceof Class);
错误消息是
VoidTest.java:6: inconvertible types found : java.lang.Class 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编译好或在我的机器上使用eclipse
解决方法:
推荐评论答案……
我能够复制编译器错误,直到我注意到我的目录中有一个Class.class文件(可能是试图分析过去的StackOverflow问题).
我删除了该文件,然后编译并运行得很好.
$javac Main.java
Main.java:7: inconvertible types
found : java.lang.Class
required: Class
System.out.println(Void.class instanceof Class);
^
Main.java:8: inconvertible types
found : java.lang.Class
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.