每一个类都有一个class属性,
查看API帮助文档的Object 可以看到有这样一个方法getClass() (这是Object 类的方法)
解释是返回运行时的对象的class对象(class对象实例是什么呢 就是类名.class 例如 HelloWorld.class, 这由JVM生成和调用),返回类型为Class<?> 也就是所说的编译后的字节码文件 例如你编写的HelloWorld类就有HelloWorld.class字节码文件
HelloWorld.class 也就是 Class<HelloWorld> (API中解释为T - the type of the class modeled by thisClass
object. For example, the type of
String.class
is Class<String>
. Use Class<?>
if the class being modeled is unknown ) Class<T>中的T有有点像C++中的template<class T> Class<?> 也就是 Class<? extends Object>
?的意思的,由于可能暂时不知道对象的Class类型(或为了简单用?替代) ,因为每个Class<T> 又继承Object ,所以可以代表任意的类型
class HelloWorld{ } public class Test { public static void main(String[] args) { HelloWorld hw= new HelloWorld(); Class<?> t= hw.getClass(); System.out.println(t); } }
输出 class HelloWorld
class<T>,class<?>,布布扣,bubuko.com
时间: 2024-11-12 11:29:04