有人可以解释一下SomeClassname.class
在JAVA中的回复吗?我无法理解它的作用......
答案 0 :(得分:36)
它返回与Object.getClass()对给定实例所做的相同,但是当您静态地知道所需的类时(即在编译时),您可以使用它。
来自Javadoc:
返回此Object的运行时类。
简而言之,它为您提供了一个表示(原始)对象的类的对象。当您希望以编程方式发现方法和字段以调用/访问它时,它由reflection使用。
例如:
Method m[] = String.class.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
{
System.out.println(m[i].toString());
}
Javadoc还会引用Java Language Specification - Class Literals(这可能有点重读)。
答案 1 :(得分:13)
它返回表示指定类名的Class对象。如果需要获取Class对象,则使用此方法。
这大致对应于.getClass(),它返回与对象实例对应的Class对象。如果要使用Class对象并且没有对象实例,可以使用someclassname.class。
答案 2 :(得分:4)
.class是一个类文字...就像5是一个int文字,就像5.0是双文字(令人惊讶的是,在java.lang包中有一个名为'Class'的类)。
因此,你可以打印类文字(就像你可以打印任何对象一样......你得到了toString()方法在Class类中返回的内容)。你可以有一个Class变量。
PS:你可以使用很多功能
答案 3 :(得分:1)
与.getClass()方法相同,但只能用于named和void类。 如果对象的类型可用,则.class语法允许获取类,但是没有实例。 此外,获取基本类型的类的最简单方法。
答案 4 :(得分:1)
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文件生成的类文字。
答案 5 :(得分:0)
就像Class对象= SomeClass.class; 上面的语句将返回该特定类的对象,并将其放入类变量中。 让它返回Class对象。