分类:N07_Java
public class SomeClass { private String name; public SomeClass(String name) { this.name = name; } public String getName() { return name; } @Override public String toString() { return "SomeClass{name='" + name + "'}"; } } import java.lang.reflect.*; public class ClassInfoExample { public static void main(String[] args) { // 获取 SomeClass 类的 Class 对象 Class<?> clazz = SomeClass.class; // 获取类名 System.out.println("Class name: " + clazz.getName()); // 输出 "SomeClass" // 获取类的构造方法 try { Constructor<?> constructor = clazz.getConstructor(String.class); System.out.println("Constructor: " + constructor); // 创建类的实例 Object instance = constructor.newInstance("John"); System.out.println("Instance: " + instance); // 输出 "SomeClass{name='John'}" } catch (Exception e) { e.printStackTrace(); } // 获取类的方法 try { Method method = clazz.getMethod("getName"); System.out.println("Method: " + method); // 调用方法 String result = (String) method.invoke(instance); System.out.println("Result from method: " + result); // 输出 "John" } catch (Exception e) { e.printStackTrace(); } // 获取类的字段 try { Field field = clazz.getDeclaredField("name"); field.setAccessible(true); // 允许访问 private 字段 System.out.println("Field: " + field); // 获取字段值 String fieldValue = (String) field.get(instance); System.out.println("Field value: " + fieldValue); // 输出 "John" } catch (Exception e) { e.printStackTrace(); } } }