星空网 > 软件开发 > Java

java 通过反射获取调用类方法及属性

首先说下反射是什么?反射是Sun公司推出的一组API,此组API位于Java.lang.reflect中

反射的作用是编写工具(例如eclipse),编写框架,当然对于一般的程序,我们不可能用反射来做这些事,一般反射大多是用于在构建类的实例以及调用类方法及属性。

ok! 了解了反射是什么以及反射的应用领域,那么就来看看Java中是怎么实现反射的吧

 Student类

public class Student {  public String name;  public String gender;  public int age;    public Student(){      }}

使用反射获取类的实例

public class Test {  public static void main(String[] args)throws ReflectiveOperationException {    //通过三种方式获取类的类对象    Class<?> c=Student.class;    Class<?> c1=new Student().getClass();    Class<?> c2=Class.forName("Student");//通过包名.类名获取类对象(因为该类在default包,所以可以不写包名)    //通过类对象来构建student实例,效果和new Student()一样,要求Student中必须要有无参的构造函数    Student s=(Student) c.newInstance();    Student s1=(Student) c1.newInstance();    Student s2=(Student) c2.newInstance();            s.age=1;    s1.age=2;    s2.age=3;            System.out.println(s.age);    System.out.println(s1.age);    System.out.println(s2.age);  }

可以看到,正确的输出了1,2,3

java 通过反射获取调用类方法及属性

通过反射获取类的属性及方法,动态执行

 下载地址  最流行的java后台框架 springmvc mybaits 

Student类型

public class Student {  public String name;  private int age;//该属性为私有,可以通过反射获取得到    public Student(){      }    public int add(int a,int b){    return a+b;  }    @Override  public String toString() {    // TODO Auto-generated method stub    return "name="+name+"\nage="+age;  }}

 

动态的给类的属性赋值和调用类的方法

public class Test {  public static void main(String[] args)throws ReflectiveOperationException {    //获取类对象    Class<?> c=Class.forName("Student");        //获取类的属性对象,需要填写属性对象的名称    Field f1=c.getField("name");//只能获取public的对象    Field f2=c.getDeclaredField("age");//可以获取到private的对象,这很吊吧            f2.setAccessible(true);//如果属性是私有的,那么就需要设置可访问    Student s1=(Student) c.newInstance();    //为属性对象赋值    f1.set(s1, "张三");    f2.set(s1, 22);        System.out.println(s1.toString());        //通过类对象获取类的方法    Method m1=c.getMethod("add", int.class,int.class);        //动态的执行方法    int sum=(int) m1.invoke(s1, 1,2);    System.out.println(sum);          }}

 

java 通过反射获取调用类方法及属性




原标题:java 通过反射获取调用类方法及属性

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

跨境购电商:https://www.goluckyvip.com/tag/36765.html
跨境谷:https://www.goluckyvip.com/tag/36766.html
跨境观察Sara:https://www.goluckyvip.com/tag/36767.html
跨境光头老梁:https://www.goluckyvip.com/tag/36768.html
跨境海外仓:https://www.goluckyvip.com/tag/36769.html
Fac:https://www.goluckyvip.com/tag/3677.html
新质生产力加速数字贸易发展 卓尔智联集团实现营收利润双增长 :https://www.kjdsnews.com/a/1836409.html
独家丨B站广告位可跳转美团APP B站为电商平台引流再升级 :https://www.kjdsnews.com/a/1836410.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流