classname.class返回什么?

Raj*_*war 36 java oop

有谁能解释一下SomeClassname.classJAVA的回报是什么?我不明白它的作用..

Gre*_*pff 38

它返回与给定实例的Object.getClass()相同的内容,但是当您静态地知道所需的类时(即在编译时),您可以使用它.

来自Javadoc:

返回此Object的运行时类.

简而言之,它为您提供了一个表示(原始)对象的对象.当你想以编程方式发现方法和字段以便调用/访问它时,它可以通过反射来使用.

例如:

        Method m[] = String.class.getDeclaredMethods();
        for (int i = 0; i < m.length; i++)
        {
          System.out.println(m[i].toString());
        }
Run Code Online (Sandbox Code Playgroud)

Javadoc还引用了Java语言规范 - 类文字(可能有点重读).


Fra*_* IV 13

它返回表示指定类名的Class对象.如果需要获取Class对象,则使用此方法.

这大致对应于.getClass(),它返回与对象实例对应的Class对象.如果要使用Class对象并且没有对象实例,可以使用someclassname.class.


小智 5

.class 是一个类文字...就像 5 是一个 int 文字一样,5.0 是一个 double 文字(令人惊讶的是,java.lang 包中有一个名为“Class”的类)。

因此,您可以打印类文字(就像您可以打印任何对象一样......您将获得 toString() 方法在 Class 类中返回的内容)。您可以有一个类变量。

PS:还有很多功能可以使用


小智 5

Object.getclass = 类名.class

它们都返回对象的运行时类

例如

Class lii = SomeClass.class;
Class leo = new SomeClass().getClass();
//lii==leo
Run Code Online (Sandbox Code Playgroud)

就像

String var1 = "heloo";
int var2 = 9;
float var3 = 8.0;
Run Code Online (Sandbox Code Playgroud)

var1 存储“heloo”,它是一个字符串文字,var2 存储 9,它是一个整数文字,var3 存储 8.0,它是一个浮点文字,所以 lii 和 leo 也存储运行时从 SomeClass.java 文件生成的类文字