没有任何类型的类。 Java中的每个对象都属于某个类。这就是为什么所有其他类继承的Object类定义getClass()方法的原因。
getClass()或类 – 文字 – Foo.class返回一个Class对象,它包含一些关于类的元数据:
>名称
>包
>方法
>字段
>构造函数
>注释
和一些有用的方法,如铸造和各种检查(isAbstract(),isPrimitive()等)。 the javadoc显示了您可以获得关于类的完全信息。
因此,例如,如果一个方法的yours被给一个对象,并且你想要处理它,如果它用@Processable注解注释,然后:
public void process(Object obj) {
if (obj.getClass().isAnnotationPresent(Processable.class)) {
// process somehow;
}
}
在本示例中,您获取给定对象(不管是什么)的类的元数据,并检查它是否有给定的注释。一个类实例上的许多方法被称为“反射操作”,或者简单的“反射”Read here关于反射,为什么和什么时候使用。
还要注意,枚举和接口也代表一个Class对象,并具有相应的元数据。
总结 – java中的每个对象都有(属于)一个类,并且有一个相应的Class对象,它包含有关它的元数据,可在运行时访问。