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反射的两种使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍vue中使用WX-JSSDK的两种方法(推荐),包括了vue中使用WX-JSSDK的两种方法(推荐)的使用技巧和注意事项,需要的朋友参考一下 公司最近有微信公众号的需求,那么微信登录授权和如何使用WX-JSSDk实现分享等等肯定是最头疼的问题。本人也是第一次开发微信公众号,在网上看了很多篇博客,最终选定了两种方法,并且亲测有效。 一、通过全局,在router.afterEach中定义
问题内容: 我需要使用反射调用类的setter方法,并且代码如下: 的是一个以及设置器方法如下: 运行此代码时,将引发A ,但是将setter方法参数类型更改为from时,将执行正常。有没有一种方法可以将setter方法的参数保持为超级类型,并且在从类中获取方法时仍无需手动指定参数的类型即可使用反射? 问题答案: 与其他答案相反,有一个非常简单的解决方案。请参阅。它为您提供了一种执行任意反射代码的
本文向大家介绍java反射之获取类的信息方法(推荐),包括了java反射之获取类的信息方法(推荐)的使用技巧和注意事项,需要的朋友参考一下 本文接上文“老生常谈反射之Class类的使用(必看篇)”,以编写一个用来获取类的信息(成员函数、成员变量、构造函数)的工具类来讲解"反射之获取类的信息" 1、获取成员函数信息 2、获取成员变量信息 3、获取构造函数信息 4、工具类代码 以上这篇java反射之获
问题内容: 我需要使用反射从另一个主要方法调用Java类的主要方法。 必须使用反射,以消除被调用主类的编译时依赖性。直截了当的方法并没有产生效果,因为它只识别“公共”和“非静态”方法。有什么建议吗? 问题答案: 不应比调用任何其他函数更复杂: 但是我真的看不到有什么用途,只要您不使用特定的代码路径,就可以买到该程序,而无需链接另一个程序,这是它唯一能为您带来的好处,但是如果这是您需要的,在这里走
问题内容: 我有一个关于反射的问题,我正在尝试使用某种eval()方法。所以我可以打电话给: 现在,我了解到java中没有eval方法,但存在反射。我做了以下代码: 这非常有效(当然,此代码周围有一个try,catch块)。它运行测试方法。但是,我想调用多个都有不同参数的方法。 我不知道这些是什么参数(不仅是String.class)。但这怎么可能呢?如何获得方法的参数类型?我知道以下方法: 但这
问题内容: 我想调用静态的方法。我得到了类型的对象,但是我无法创建该类的实例,也无法调用该方法。 问题答案: 如果方法是私有使用而不是。并调用方法对象。
问题内容: 我有一个名为choiceDialog(String s,int i)的静态方法,在该方法中,我想根据提供给choiceDialog的参数在同一类(Dialogs.class)中调用另一个方法。s是所需方法的名称,而i是单个参数。 我已经尝试了许多教程,并花了几个小时阅读有关该主题的内容,但是我似乎无法确切地知道我需要做什么。 有任何想法吗? 谢谢! 问题答案: 为什么要使用在Strin
本文向大家介绍Java之递归求和的两种简单方法(推荐),包括了Java之递归求和的两种简单方法(推荐)的使用技巧和注意事项,需要的朋友参考一下 方法一: 方法二: 当然还有其它方法,如采用 for 循环、while 循环等,那就不属于递归了!这里就不做讨论了。 以上这篇Java之递归求和的两种简单方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。