JAVA反射获取类名,方法名,属性及构造方法

//定义了个类,随便写了些属性,方法和构造方法
class ReflectTest {
    private String title;
    private int num;
    public String content;
    protected double income;

    public ReflectTest() {
    }

    private ReflectTest(String title, int num, double income) {
        this.title = title;
        this.num = num;
        this.income = income;
    }

    public ReflectTest(String title, int num) {
        this.title = title;
        this.num = num;
    }

    private void getSomeThing() {

    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public double getIncome() {
        return income;
    }

    public void setIncome(double income) {
        this.income = income;
    }

}

测试类

** 
 * @description:
 * @author ldm
 * @date 2016-2-19 下午5:24:27
 * java中修饰符编号 :
 * PUBLIC: 1   PRIVATE: 2   PROTECTED: 4    STATIC: 8   FINAL: 16
 * SYNCHRONIZED: 32   VOLATILE: 64   TRANSIENT: 128  NATIVE: 256
 * INTERFACE: 512   ABSTRACT: 1024   STRICT: 2048
 */
public class Test {

    @SuppressWarnings("rawtypes")
    public static void main(String[] args) {
        try {
            Class clazz = Class.forName("reflect.ReflectTest");
            System.out.println("------获取类名-----------");
            System.out.println(clazz.toString());// 获取类的完整名
            System.out.println(clazz.getSimpleName());// 获取类名
            System.out.println("------获取类中的构造方法-----------");
            // 获得所有构造方法
            Constructor[] cons = clazz.getDeclaredConstructors();
            for (int i = 0; i < cons.length; i++) {
                System.out.println("所有构造方法之" + cons[i].getName());
                // 方法修饰符
                System.out.println("修饰符类型:" + cons[i].getModifiers());
            }
            // 获得所有公共构造方法
            Constructor[] cons1 = clazz.getConstructors();
            for (int i = 0; i < cons1.length; i++) {
                System.out.println("公共构造方法之" + cons1[i].getName() + "--");
                System.out.println("修饰符类型:" + cons1[i].getModifiers());
            }
            System.out.println("-----获取类中定义的方法------------");
            Method[] mths = clazz.getDeclaredMethods();
            for (int i = 0; i < mths.length; i++) {
                System.out.println("所有方法之" + mths[i].getName());
                System.out.println("修饰符类型:" + mths[i].getModifiers());
            }
            Method[] mths1 = clazz.getMethods();
            for (int i = 0; i < mths1.length; i++) {
                System.out.println("公有方法之" + mths1[i].getName());
                System.out.println("修饰符类型:" + mths1[i].getModifiers());
            }
            System.out.println("-------获取所有的属性------------");
            Field[] fls = clazz.getFields();
            for (int i = 0; i < fls.length; i++) {
                System.out.println("公有属性之" + fls[i].getName());
                System.out.println("修饰符类型:" + fls[i].getModifiers());
            }
            Field[] fls1 = clazz.getDeclaredFields();
            for (int i = 0; i < fls1.length; i++) {
                System.out.println("所有属性之" + fls1[i].getName());
                System.out.println("修饰符类型:" + fls1[i].getModifiers());
            }
        }
        catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值