【发布时间】:2017-08-12 09:27:21
【问题描述】:
根据这个answer,getClass().getName() 应该给我解决方案。我不确定为什么这不起作用。
错误:
/tmp/java_i8lW4s/HelloWorld.java:35: error: cannot find symbol
System.out.print(z.class.getName());
^
symbol: class z
location: class HelloWorld
1 error
代码:
public class HelloWorld
{
public static void main(String[] args)
{
int x, y;
double z;
x = 10;
y = 5;
z = 10 / 5;
System.out.print(z.getClass().getName());
}
}
【问题讨论】:
-
z不是一个对象。它是一种原始数据类型。您不能调用原始数据类型的方法 -
您不能在诸如
double之类的原始变量上调用getClass()(或任何其他方法)。此外,您的代码与您显示的错误不完全匹配,因此您编译的版本可能与此处显示的不同。 -
您为什么要这样做?您确切地知道它是什么,即
double。不可能是别的。 -
其他答案解决了这个问题,但就像@Andreas 问的那样,这个用例是什么?还有其他更好的方法来检查不涉及将所有基元更改为类的实例的基元类型。此外,您应该开始使用像 eclipse 这样的 IDE 来进行开发。它会突出显示这个错误并告诉你问题是什么,这样你就可以在不重新编译的情况下弄清楚它。它也会给你一个更具描述性的错误。
标签: java