读项目代码时遇到了这样的代码:
public class UserOperationLogHelper {
//...
/**
* @param value
* @return
*/
private boolean needNotHandle(Object value) {
if (Class.class.equals(value.getClass())) {
return true;
}
return false;
}
}
上API:
java.lang
类 Class<T>
java.lang.Object java.lang.Class<T>
-
T
- 由此Class
对象建模的类的类型。例如,String.class
的类型是Class<String>
。如果将被建模的类未知,则使用Class<?>
。
类型参数:
-
所有已实现的接口:
- Serializable, AnnotatedElement, GenericDeclaration, Type
public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement
Class
类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class
对象。基本的 Java 类型(boolean
、byte
、char
、short
、int
、long
、float
和 double
)和关键字 void
也表示为 Class
对象。
Class
没有公共构造方法。Class
对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass
方法自动构造的。
以下示例使用 Class
对象来显示对象的类名:
void printClassName(Object obj) { System.out.println("The class of " + obj + " is " + obj.getClass().getName()); }
还可以使用一个类字面值(JLS Section 15.8.2)来获取指定类型(或 void)的 Class
对象。例如:
System.out.println("The name of class Foo is: "+Foo.class.getName());
-
从以下版本开始:
- JDK1.0 另请参见:
-
ClassLoader.defineClass(byte[], int, int)
, 序列化表格