Java反射的两种使用方法(推荐)

 更新时间:2018年05月29日 11:24:50   作者:缘故为何  
这篇文章主要介绍了Java反射的两种使用方法,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

1.创建User.java

package com.tao.test;
public class User {
  private String name;
  private int id;
  public User() {
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
}

2.main方法

package com.tao.test;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
public class test {
  public static void main(String[] args) throws Exception, SecurityException {
    //第一种 Constructor<?>方法
    Constructor<?> a = User.class.getDeclaredConstructor();
    a.setAccessible(true);
    User b = (User)a.newInstance();
    b.setId(1);//id字段
    b.setName("test");//name字段
    System.out.println(b.getId()+" "+b.getName());
    //第二种 Class<?>方法
    Class<?> c = Class.forName("com.tao.test.User");
    Field idF = c.getDeclaredField("id");//id字段
    idF.setAccessible(true);
    Object o = c.newInstance();
    idF.set(o, 2);
    Field nameF = c.getDeclaredField("name");//name字段
    nameF.setAccessible(true);
    Object name = c.newInstance();
    nameF.set(name, "jack");
    System.out.println(idF.get(o)+" "+nameF.get(name));
    //普通new
    User user = new User();
    user.setId(3);
    user.setName("tery");
    System.out.println(user.getId()+" "+user.getName()+" "+user.getClass());
  }
}

3.控制台输出:

 test
 jack
tery class com.tao.test.User

总结

以上所述是小编给大家介绍的Java反射的两种使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 微信开发准备第一步 Maven仓库管理新建WEB项目

    微信开发准备第一步 Maven仓库管理新建WEB项目

    这篇文章主要为大家详细介绍了微信开发准备第一步,Maven仓库管理新建WEB项目,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Java中驼峰命名与下划线命名相互转换

    Java中驼峰命名与下划线命名相互转换

    这篇文章主要介绍了Java中驼峰命名与下划线命名相互转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Spring MVC实现mysql数据库增删改查完整实例

    Spring MVC实现mysql数据库增删改查完整实例

    这篇文章主要介绍了Spring MVC实现mysql数据库增删改查完整实例,从创建一个web项目开始,分享了项目结构以及具体Java代码和前端页面等相关内容,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • Java数据结构彻底理解关于KMP算法

    Java数据结构彻底理解关于KMP算法

    这篇文章主要介绍了Java数据结构关于KMP算法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Spring Boot整合swagger使用教程详解

    Spring Boot整合swagger使用教程详解

    这篇文章主要介绍了Spring Boot整合swagger使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 基于Java SSM框架实现简易的评教系统

    基于Java SSM框架实现简易的评教系统

    这篇文章主要介绍了通过Java SSM框架实现一个简易的评教系统的示例代码,文中的代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-02-02
  • 一文搞懂Java并发AQS的共享锁模式

    一文搞懂Java并发AQS的共享锁模式

    这篇文章主要为大家阐述AQS另外一个重要模式,共享锁模式。共享锁可以由多个线程同时获取, 比较典型的就是读锁,感兴趣的小伙伴可以了解一下
    2022-10-10
  • 深入了解Java接口回调机制

    深入了解Java接口回调机制

    这篇文章主要介绍了Java接口回调机制,下面我们来一起学习一下吧
    2019-05-05
  • java实现快速排序算法

    java实现快速排序算法

    快速排序算法是基于分治策略的另一个排序算法。其基本思想是:对输入的子数组a[p:r],按以下三个步骤进行排序。 1) 分解(Divide)(2) 递归求解(Conquer) (3) 合并(Merge)
    2015-04-04
  • java使用EasyExcel实现Sheet的复制与填充

    java使用EasyExcel实现Sheet的复制与填充

    EasyExcel是一个非常有用的工具,它提供了强大的模板填充功能,可以轻松解决各种业务需求,本文主要为大家介绍了如何使用EasyExcel实现模板Sheet复制与填充,需要的可以参考下
    2023-10-10

最新评论