java中的字节码

本文通过示例展示了如何使用Java反射API获取类的名称、父类、接口、属性、方法和构造函数,以及检查方法修饰符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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....");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值