classname.class返回什么?

时间:2012-05-07 06:02:48

标签: java oop

有人可以解释一下SomeClassname.class在JAVA中的回复吗?我无法理解它的作用......

6 个答案:

答案 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对象。