我知道这已被问过一百万次,但我仍然无法根据之前的解决方案找出问题的解决方案。我看到的大多数问题涉及到产生多个文件的类,环境变量以及像我这样的初学者无法理解的类似奇怪的东西。
我有一个非常简单的测试设置来试图理解这个问题。
class Class1{
}
public class testClasses{
public static void main(String[] args){
System.out.print(Class1);
}
}
(显然在名为testClasses.java
的文件中)。
它给我一个错误,说cannot find symbol
指的是Class1
。 Java正在发生什么,这使得它无法识别Class1
?
答案 0 :(得分:3)
编译器认为Class1
是一个未声明的变量。你想要的是什么
System.out.println(Class1.class);
或
System.out.println(new Class());
答案 1 :(得分:2)
我认为你的意思是:
System.out.print(new Class1());
为了使其正常工作(打印人类可读的内容),您需要覆盖toString()
中的Class1
方法。
答案 2 :(得分:1)
您的问题是Class1
不是符号或变量。它是一个类的名称。对该类的引用。什么时候打印出去; System.out.println
方法接受一个对象。你没有。
如果您的目标是System.out.println(new Class1())
,则可以尝试{{1}}。
答案 3 :(得分:0)
只有Class1
对JVM
没有任何意义,所以你可以使用
System.out.println(Class1.class);
或
System.out.println(new Class());