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反射的两种使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • SpringBootAdmin+actuator实现服务监控

    SpringBootAdmin+actuator实现服务监控

    这篇文章主要为大家详细介绍了SpringBootAdmin+actuator实现服务监控,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 教你用Java SpringBoot如何解决跨域

    教你用Java SpringBoot如何解决跨域

    在项目开发中,时常会遇到跨域问题,本文主要介绍了五种解决跨域的方法,使用最多的是第三种,需要的朋友们下面随着小编来一起学习学习吧
    2021-09-09
  • Java中Map.merge()方法使用示例详解

    Java中Map.merge()方法使用示例详解

    这篇文章主要介绍了Map.merge()方法使用和介绍,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Java如何处理json字符串value多余双引号

    Java如何处理json字符串value多余双引号

    这篇文章主要介绍了Java如何处理json字符串value多余双引号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 基于springboot搭建的web系统架构的方法步骤

    基于springboot搭建的web系统架构的方法步骤

    这篇文章主要介绍了基于springboot搭建的web系统架构的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • Java中的Semaphore信号量简单使用代码实例

    Java中的Semaphore信号量简单使用代码实例

    这篇文章主要介绍了Java中的Semaphore信号量简单使用代码实例,Semaphore是用来保护一个或者多个共享资源的访问,Semaphore内部维护了一个计数器,其值为可以访问的共享资源的个数,一个线程要访问共享资源,需要的朋友可以参考下
    2023-12-12
  • spring boot整合quartz实现多个定时任务的方法

    spring boot整合quartz实现多个定时任务的方法

    这篇文章主要介绍了spring boot整合quartz实现多个定时任务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Java实现抽奖功能

    Java实现抽奖功能

    这篇文章主要为大家详细介绍了Java实现抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • java结束当前循环常用代码

    java结束当前循环常用代码

    在 Java中,当我们要结束一个循环时,通常会使用循环变量的实现类来结束,但在实际开发中,我们经常会遇到某个循环结束后需要进行其他的操作的情况,在本文中给大家分享java结束当前循环常用代码,感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • Java 爬虫服务器被屏蔽的解决方案

    Java 爬虫服务器被屏蔽的解决方案

    这篇文章主要介绍了Java 爬虫服务器被屏蔽的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10

最新评论