在Java中,Class 类提供了许多方法来获取类的信息。以下是一些常用的方法:
Class<?> clazz = MyClass.class; // 通过类字面量获取
// 或
MyClass obj = new MyClass();
Class<?> clazz = obj.getClass(); // 通过对象实例获取
// 或
Class<?> clazz = Class.forName("com.example.MyClass"); // 通过类的全限定名获取
Class<?> superClass = clazz.getSuperclass();
Class<?>[] interfaces = clazz.getInterfaces();
Constructor<?>[] constructors = clazz.getDeclaredConstructors(); // 获取所有构造方法,包括私有
Constructor<?> constructor = clazz.getConstructor(String.class); // 获取指定参数类型的构造方法
Method[] methods = clazz.getDeclaredMethods(); // 获取所有方法,包括私有
Method method = clazz.getMethod("myMethod", String.class); // 获取指定名称和参数类型的方法
Field[] fields = clazz.getDeclaredFields(); // 获取所有字段,包括私有
Field field = clazz.getField("myField"); // 获取指定名称的字段
Annotation[] annotations = clazz.getAnnotations(); // 获取所有注解
Annotation annotation = clazz.getAnnotation(MyAnnotation.class); // 获取指定类型的注解
TypeVariable<Class<?>>[] genericParameters = clazz.getTypeParameters(); // 获取泛型参数
ParameterizedType[] genericInterfaces = clazz.getGenericInterfaces(); // 获取泛型接口
Type[] genericSuperclass = clazz.getGenericSuperclass(); // 获取泛型父类
boolean isInstance = clazz.isInstance(obj);
boolean isAssignableFrom = clazz.isAssignableFrom(subClass);
这些方法可以帮助你获取类的各种信息。请注意,这里只是列举了一些常用的方法,Class 类还提供了其他方法来获取更多详细信息。你可以查阅Java官方文档以获取完整的列表。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。