谁能解释一下SomeClassname.class
JAVA 的返回值是什么?我无法理解它的作用..
6 回答
它返回与Object.getClass()对给定实例所做的相同,但是当您静态知道您想要什么类时(即在编译时),您可以使用它。
来自 Javadoc:
返回此 Object 的运行时类。
简而言之,它为您提供了一个表示(原始)对象类的对象。当您想以编程方式发现方法和字段以调用/访问它们时,它可以通过反射使用。
例如:
Method m[] = String.class.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
{
System.out.println(m[i].toString());
}
Javadoc 还向您介绍了Java 语言规范 - 类文字(可能有点繁琐)。
它返回代表指定类名的 Class 对象。如果您需要获取 Class 对象,则使用此选项。
这大致对应于 .getClass() ,它返回对应于对象实例的 Class 对象。当您想使用 Class 对象并且没有对象实例时,您可以使用 someclassname.class。
.class 是一个类文字......就像 5 是一个 int 文字一样,就像 5.0 是一个双文字(令人惊讶的是,在 java.lang 包中有一个名为“Class”的类)。
因此,您可以打印类字面量(就像您可以打印任何对象......您会得到 toString() 方法在 Class 类中返回的内容)。你可以有一个类变量。
PS:有很多功能可以使用
Object.getclass = className.class
它们都返回对象的运行时类
例如
Class lii = SomeClass.class;
Class leo = new SomeClass().getClass();
//lii==leo
就像
String var1 = "heloo";
int var2 = 9;
float var3 = 8.0;
var1 存储“heloo”,它是一个字符串文字,var2 存储 9,它是一个整数文字,var3 存储 8.0,它是一个浮点文字,所以 lii 和 leo 也存储在运行时从 SomeClass.java 文件生成的类文字
与 .getClass() 方法相同,但只能用于命名类和 void 类。.class 语法允许在对象类型可用但没有实例的情况下获取 Class。此外,获取原始类型的类的最简单方法。
它就像 Class object = SomeClass.class; 上面的语句将返回该特定类的对象并将其放入类变量中。Hens 它会返回 Class 对象。