Java classname.class返回什么?

Java classname.class返回什么?,java,oop,Java,Oop,谁能解释一下SomeClassname.class在JAVA中返回的是什么??我无法理解它的功能。它返回表示指定类名的类对象。如果需要获取类对象,则使用此选项 这大致对应于.getClass(),它返回与对象实例对应的类对象。当您想要处理类对象而没有对象实例时,可以使用someclassname.class。它返回与给定实例相同的结果,但当您静态地知道您想要什么类(即在编译时)时,可以使用它 从Javadoc: 返回此对象的运行时类 简而言之,它为您提供了一个表示(原始)对象类的对象。除其他外,

谁能解释一下
SomeClassname.class
在JAVA中返回的是什么??我无法理解它的功能。

它返回表示指定类名的类对象。如果需要获取类对象,则使用此选项

这大致对应于.getClass(),它返回与对象实例对应的类对象。当您想要处理类对象而没有对象实例时,可以使用someclassname.class。

它返回与给定实例相同的结果,但当您静态地知道您想要什么类(即在编译时)时,可以使用它

从Javadoc:

返回此对象的运行时类

简而言之,它为您提供了一个表示(原始)对象类的对象。除其他外,当您希望通过编程方式发现方法和字段以便调用/访问它们时,可以使用它

例如:

        Method m[] = String.class.getDeclaredMethods();
        for (int i = 0; i < m.length; i++)
        {
          System.out.println(m[i].toString());
        }
方法m[]=String.class.getDeclaredMethods();
对于(int i=0;i
Javadoc还向您介绍了(可能有点繁重的阅读)。

与.getClass()方法相同,但只能用于命名类和空类。 .class语法允许在对象类型可用但没有实例的情况下获取类。
另外,为基元类型获取类的最简单方法。

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

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


PS:您可以使用许多函数,就像Class object=SomeClass.Class一样; 上面的语句将返回该特定类的对象,并将其放入类变量中。
它将返回类对象。

object.getclass=className.Class

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

乙二醇

就像

String var1 = "heloo";
int var2 = 9;
float var3 = 8.0;
var1存储“heloo”,它是一个字符串文本, var2存储9,它是一个整数文本, var3存储8.0,这是一个浮点文本,
因此,lii和leo也存储运行时从SomeClass.java文件生成的类文本

这是否意味着它返回类实例?@Rajeshwar否:例如,
new Object()
返回
Object
的新实例,但
Object.class
类的实例。它们是不同的东西。@Rajeshwar你看了什么吗?我很困惑。为什么要使用SomeClassName.class来获取java.lang.class对象?SomeClassName不是已经是java.lang.Class对象了吗?如果不是,SomeClassName是什么类型的对象?文件中的SomeClassName本身不是有效的表达式,因此它不表示任何对象。这只是班级的名字。这有点像问,“为什么要用someMethod()来调用这个方法?someMethod不是已经是这个方法了吗?”是的,但是()是告诉Java你想调用这个方法的方式;和“.class”是告诉java您想要表示类的对象的方式。SomeClass::class返回什么,它与o SomeClass.class不同?SomeClass::class返回什么,它与o SomeClass.class不同?
String var1 = "heloo";
int var2 = 9;
float var3 = 8.0;