gpt4 book ai didi

Java - 为什么使用Class类的实例方法需要写classname.class.method或instance.getClass().method?

转载 作者:行者123 更新时间:2023-12-01 16:48:25 30 4
gpt4 key购买 nike

为什么要用Class类的方法来写classname.class.method或者instance.getClass().method?

例如:

public class SomeClass{
public static void main (String[] args){
SomeClass sm = new SomeClass();
//The correct ways:
System.out.println(sm.getClass().getName());
//or
System.out.println(SomeClass.class.getName());
}
}

Class类的实例方法需要一个类(在System.out.println(sm.getClass().getName();中可以看到,因为sm.getClass()返回一个类)那么为什么这样写 System.out.println(SomeClass.getName(); 是不正确的,并且如果类调用 getName() 方法,则需要在中间写“class”?是因为 SomeClass 类不被视为 Class 类的实例?为什么 sm.getClass() 被视为 Class 类的实例?

谢谢。

最佳答案

new SomeClass() 创建 SomeClass 类的实例:

SomeClass someClass = new SomeClass();

它不提供 SomeClassClass 实例作为 ObjectgetClass() 实例方法类的作用是:

Class<? extends SomeClass> clazz = new SomeClass().getClass();

这是两个完全不同的事情。

关于Java - 为什么使用Class类的实例方法需要写classname.class.method或instance.getClass().method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45372491/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com