码迷,mamicode.com
首页 > 编程语言 > 详细

java反射简单例子

时间:2016-06-30 08:43:28      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:java reflect 反射


假设有如下类:

package com.test.reflect;

public class Person

{

    private int age;

    private String name;

    public Persion()

    {

    }

    public Persion(String name)

    {

        this.name = name;

    }

    public Persion(String name,int age)

    {

        this(name);

        this.age = age;

    }

    public void setName(String name)

    {

        this.name = name;

    }

    public void setAge(int age)

    {

        this.age = age;

    }

    @hide

    public void setAll(String name,int age)

    {

        setName(name);

        setAge(age);

    }

    private int getAge()

    {

        return age;

    }

    

    public String getName()

    {

        return name;

    }      

}


因为getAge()和setAll()是private方法和@hide注解,平常对象无法进行调用.为了是能使用这两个方法,可通过反射:

public class ReflectDemo

{

    public static void main(String[] args) throws Exception

    {

        //获取类引用

        Class class = Class.forName("com.test.reflect.Persion");

        //实例化Person对象

       // Persion persion = (Persion)class.newInstance();//Persion无参构造函数 

         Persion persion = (Persion)class.newInstance("xiaoming",20);

        //获取setAll函数

        Method setAll = class.getMethod("setAll",String.class,int.class);

        //调用setAll函数

        setAll.invoke(persion,"xiaohong",18);

        //获取getAge函数

        Method getAge = class.getMethod("getAge");

        //调用getAge函数

        int age = (int)getAge.invoke(persion);

        System.out.println("name:"+persion.getName()+" age:"+age);

    }

}



本文出自 “whatever957” 博客,请务必保留此出处http://whatever957.blog.51cto.com/6835003/1794404

java反射简单例子

标签:java reflect 反射

原文地址:http://whatever957.blog.51cto.com/6835003/1794404

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!