package chapter03;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Test04 {
public static void main(String[] args) throws NoSuchFieldException, NoSuchMethodException {
Parent parent = new child();
//类对象
Class<? extends Parent> aClass = parent.getClass();
//获取类的名称
System.out.println(aClass.getName());
System.out.println(aClass.getSimpleName());
System.out.println(aClass.getPackageName());
//获取类的父类
Class<?> superclass = aClass.getSuperclass();
System.out.println(superclass);
//获取类的接口
Class<?>[] interfaces = aClass.getInterfaces();
System.out.println(interfaces.length);
//获取类的属性
try{
Field f = aClass.getField("test1"); //public
System.out.println("test1");
}
catch (NoSuchFieldException e)
{
System.out.println("no such method");
}
try{
Field f2 = aClass.getDeclaredField("test2");
}
catch (NoSuchFieldException e)
{
System.out.println("no such method");
}
Field[] fields = aClass.getDeclaredFields();
Method method = aClass.getMethod("test1");
System.out.println(method);
Method method1 = aClass.getDeclaredMethod("test2");
System.out.println(method1);
try{
Constructor<? extends Parent> constructor = aClass.getConstructor();
}
catch( NoSuchMethodException e)
{
}
Constructor<?>[] constructors = aClass.getConstructors();
Constructor<? extends Parent> declaredConstructor = aClass.getDeclaredConstructor();
int modifiers = aClass.getModifiers();
boolean aPrivate = Modifier.isPrivate(modifiers);
System.out.println(aPrivate);
}
}
class Parent{
public void test1() {
System.out.println("test1...");
}
};
class child extends Parent{
public void test2()
{
System.out.println("test2....");
}
}
java中的字节码
最新推荐文章于 2026-01-08 15:22:05 发布
本文通过示例展示了如何使用Java反射API获取类的名称、父类、接口、属性、方法和构造函数,以及检查方法修饰符。
2331

被折叠的 条评论
为什么被折叠?



