java如何查询类
查询类的方法
在Java中查询类可以通过反射机制实现,反射允许在运行时检查类、接口、字段和方法。以下是几种常见的查询类的方式:
使用Class.forName()
Class<?> clazz = Class.forName("java.lang.String");
System.out.println(clazz.getName());
该方法通过类的全限定名加载类,适用于已知类名的场景。
使用对象的getClass()方法
String str = "example";
Class<?> clazz = str.getClass();
System.out.println(clazz.getName());
通过已有对象的实例获取其对应的Class对象。
使用类字面常量
Class<?> clazz = String.class;
System.out.println(clazz.getName());
直接通过类名加.class获取Class对象,适用于编译时已知类的情况。
查询类的成员
反射还可以查询类的成员(字段、方法、构造器等):
获取字段信息
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
System.out.println(field.getName());
}
获取方法信息
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method.getName());
}
动态加载类
通过类加载器动态加载类:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Class<?> clazz = classLoader.loadClass("java.util.ArrayList");
System.out.println(clazz.getName());
检查类信息
检查类的修饰符、父类、接口等信息:

int modifiers = clazz.getModifiers();
System.out.println(Modifier.toString(modifiers));
Class<?> superClass = clazz.getSuperclass();
System.out.println(superClass.getName());
Class<?>[] interfaces = clazz.getInterfaces();
for (Class<?> iface : interfaces) {
System.out.println(iface.getName());
}
以上方法覆盖了Java中查询类及其成员的主要操作,适用于大多数反射场景。






