java反射实例(java如何用反射获取类实例)

2025-12-21 07:30:02 0

java反射实例(java如何用反射获取类实例)

本篇文章给大家谈谈java反射实例,以及java如何用反射获取类实例对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

java如何用反射获取类实例

  • class类有newInstance() 这个方法就可以用来生成实例。

  • 用反射获取类spring用的很多,李刚的书里面就用。不用spring的可以直接用java的jdk中的,网上实例很多,搜索“java 反射实例”一下就可以。

关于用java反射调用一个类里面的方法并执行

Java中要用到反射,首先就必须要获取到对应的class对象,在Java中有三种方法获取类对应的class对象。

1、通过类的.class属性

2、通过类实例的getClass()方法获取

3、通过Class.forName(String className)方法获取

现在比如在package下有个类Calculator

public class Calculator{
public double add(double score1,double score2){
return score1 + score2;
}
public void print(){
System.out.println("OK");
}
public static double mul(double score1,double score2){
return score1 * score2;
}
}

public class CalculatorTest {
public static void main(String args) throws Exception {
//通过类的.class属性获取
Class《Calculator》 clz = Calculator.class;
//或者通过类的完整路径获取,这个方法由于不能确定传入的路径是否正确,这个方法会抛ClassNotFoundException
//Class《Calculator》 clz = Class.forName("test.Calculator");
//或者new一个实例,然后通过实例的getClass()方法获取
//Calculator s = new Calculator();
//Class《Calculator》 clz = s.getClass();
//1. 获取类中带有方法签名的mul方法,getMethod第一个参数为方法名,第二个参数为mul的参数类型数组
Method method = clz.getMethod("mul", new Class{double.class,double.class});
//invoke 方法的第一个参数是被调用的对象,这里是静态方法故为null,第二个参数为给将被调用的方法传入的参数
Object result = method.invoke(null, new Object{2.0,2.5});
//如果方法mul是私有的private方法,按照上面的方法去调用则会产生异常NoSuchMethodException,这时必须改变其访问属性
//method.setAccessible(true);//私有的方法通过发射可以修改其访问权限
System.out.println(result);//结果为5.0
//2. 获取类中的非静态方法
Method method_2 = clz.getMethod("add", new Class{double.class,double.class});
//这是实例方法必须在一个对象上执行
Object result_2 = method_2.invoke(new Calculator(), new Object{2.0,2.5});
System.out.println(result_2);//4.5
//3. 获取没有方法签名的方法print
Method method_3 = clz.getMethod("print", new Class{});
Object result_3 = method_3.invoke(new Calculator(), null);//result_3为null,该方法不返回结果
}
}

java中,为什么说反射是动态的生成实例动态的调用

反射么 就是根据你的类来为你创建对象
动态就是灵活的,直接写好的不能变的就是静态的
反射一般配合泛型使用
Class.forName(className).newInstance()
你传入什么类 就能对应生成这个类的对象

.Java 反射机制及项目中用到哪些

Java 反射机制运用实例
\\ TIP:只知道类名,要运用反射机制动态调用已知类名的方法
类结构:
-------form(package):CityQueryForm.java
-------test(package):Test.java
CityQueryForm.java:
package form;
import java.util.Hashtable;
public class CityQueryForm {

private String name = null;

public void setName(Hashtable ht)
{
this.name = (String) ht.get("name");
}

public String getName() {
return name;
}
}
Test.java:
package test;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Hashtable;
public class Test {
private void getForm(Hashtable ht, String formName) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException {

//Class c = Class.forName(formName);
Object o = Class.forName(formName).newInstance(); // 指定类名的类对象

Class partypes;
partypes = Hashtable.class; //setName方法需要的参数
Method ms = o.getClass().getMethod("setName", partypes); //得到指定方法名和参数的方法对象
Method mg = o.getClass().getMethod("getName", null);

ms.invoke(o, ht); //方法调用
String mg.invoke(o, null);
System.out.println(name);
}
public static void main(String args) throws ClassNotFoundException, SecurityException, IllegalArgumentException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {

String formName = "form.CityQueryForm";

Hashtable ht = new Hashtable();
ht.put("name", "wuhan");

Test t = new Test();
t.getForm(ht,formName);
}
}
测试结果:
wuhan

java中反射的三种方法是

第一种:通过forName()方法;
第二种:类.class;
第三种:对象.getClass()。
  举例如下:
  package
test;
  public class Demo{
  public static void
main(){
  Class《?》 c1 = null;
  Class《?》 c2 =
null;
  Class《?》 c3 =
null;
  //三种反射用实例化方式
  try{
  //最常用的一种形式
  c1 =
Class.forName("test.X");
  }catch(ClassNotFoundException
e){
  e.printStackTrace();
  }
  //通过Object类中的方法实例化
  c2
= new X().getClass();
  //通过类.class实例化
  c3 =
X.class;
  System.out.println("类名:" + c1.getName());
//得到类名
  System.out.println("类名:" + c2.getName());
//得到类名
  System.out.println("类名:" + c3.getName());
//得到类名
  }
  }

java如何用反射获取类实例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java如何用反射获取类实例、java如何用反射获取类实例的信息别忘了在本站进行查找哦。

java反射实例(java如何用反射获取类实例)

本文编辑:admin

更多文章:


但是要做作业怎么办(没心情做作业但是必须做怎么办)

但是要做作业怎么办(没心情做作业但是必须做怎么办)

本篇文章给大家谈谈但是要做作业怎么办,以及没心情做作业但是必须做怎么办对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录没心情做作业但是必须做

2025年6月16日 06:00

unix时间戳字段异常值怎么处理(怎么对统计数据的异常值进行判断和处理)

unix时间戳字段异常值怎么处理(怎么对统计数据的异常值进行判断和处理)

大家好,如果您还对unix时间戳字段异常值怎么处理不太了解,没有关系,今天就由本站为大家分享unix时间戳字段异常值怎么处理的知识,包括怎么对统计数据的异常值进行判断和处理的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本

2026年5月15日 06:00

java视频教程马士兵(哪里可以下载全部马士兵JAVA视频教程)

java视频教程马士兵(哪里可以下载全部马士兵JAVA视频教程)

大家好,关于java视频教程马士兵很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于哪里可以下载全部马士兵JAVA视频教程的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有

2026年4月6日 02:00

程序员最喜欢的编辑器颜色(我终于知道为什么很多程序员编辑器都用暗色背景了)

程序员最喜欢的编辑器颜色(我终于知道为什么很多程序员编辑器都用暗色背景了)

本篇文章给大家谈谈程序员最喜欢的编辑器颜色,以及我终于知道为什么很多程序员编辑器都用暗色背景了对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目

2026年7月12日 13:00

对于java开发岗位的理解(java的工作职责是什么)

对于java开发岗位的理解(java的工作职责是什么)

本篇文章给大家谈谈对于java开发岗位的理解,以及java的工作职责是什么对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录java的工作职责

2026年2月7日 04:30

java队列解决并发(如何处理java高并发问题)

java队列解决并发(如何处理java高并发问题)

本篇文章给大家谈谈java队列解决并发,以及如何处理java高并发问题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录如何处理java高并发

2026年4月25日 07:45

网页游戏代码下载网站有哪些(电脑游戏下载平台哪个好求推荐)

网页游戏代码下载网站有哪些(电脑游戏下载平台哪个好求推荐)

本篇文章给大家谈谈网页游戏代码下载网站有哪些,以及电脑游戏下载平台哪个好求推荐对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录电脑游戏下载平

2026年2月22日 23:00

必会失去随机存取功能(计算机储存中断电后其中信息会丢失的是什么)

必会失去随机存取功能(计算机储存中断电后其中信息会丢失的是什么)

今天给各位分享计算机储存中断电后其中信息会丢失的是什么的知识,其中也会对计算机储存中断电后其中信息会丢失的是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录计算机储存中断电后其中信息会丢失的是什么计算机在断

2026年5月16日 20:15

unicode字符转换(Unicode 与 UTF-8 之间的转换)

unicode字符转换(Unicode 与 UTF-8 之间的转换)

各位老铁们好,相信很多人对unicode字符转换都不是特别的了解,因此呢,今天就来为大家分享下关于unicode字符转换以及Unicode 与 UTF-8 之间的转换的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目

2025年9月26日 12:00

leisure用法(在英语中都什么时候用介词)

leisure用法(在英语中都什么时候用介词)

这篇文章给大家聊聊关于leisure用法,以及在英语中都什么时候用介词对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录在英语中都什么时候用介词休闲用英语怎么说at leisure可以做主语吗free和leisure的区别关于英

2026年2月6日 19:45

特殊角的三角函数值(三角函数特殊值)

特殊角的三角函数值(三角函数特殊值)

各位老铁们好,相信很多人对特殊角的三角函数值都不是特别的了解,因此呢,今天就来为大家分享下关于特殊角的三角函数值以及三角函数特殊值的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录三角函数特殊值特殊角的三角函数值特

2026年7月4日 14:00

x86汇编指令入门(如何编写最简单的汇编语言)

x86汇编指令入门(如何编写最简单的汇编语言)

本篇文章给大家谈谈x86汇编指令入门,以及如何编写最简单的汇编语言对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录如何编写最简单的汇编语言8

2026年1月13日 11:45

怎么超链接公众号(微信公众号文章怎么添加超链接)

怎么超链接公众号(微信公众号文章怎么添加超链接)

“怎么超链接公众号”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看怎么超链接公众号(微信公众号文章怎么添加超链接)!本文目录微信公众号文章怎么添加超链接公众号推文里面怎么添加外部链接公众号怎么设置附加链接微信公众号添加超链接

2025年11月7日 15:00

javascript语句汇总(js中总共有几种输出语句)

javascript语句汇总(js中总共有几种输出语句)

大家好,今天小编来为大家解答以下的问题,关于javascript语句汇总,js中总共有几种输出语句这个很多人还不知道,现在让我们一起来看看吧!本文目录js中总共有几种输出语句JavaScript语句应用JavaScript经典语句及其基本应

2025年10月1日 21:30

stack英语(叠什么意思近义词和反义词是什么英文翻译是什么)

stack英语(叠什么意思近义词和反义词是什么英文翻译是什么)

大家好,今天小编来为大家解答以下的问题,关于stack英语,叠什么意思近义词和反义词是什么英文翻译是什么这个很多人还不知道,现在让我们一起来看看吧!本文目录叠什么意思近义词和反义词是什么英文翻译是什么C程序中栈和堆用英文分别怎么表示望高手指

2025年7月31日 18:00

没有建站经验怎样创建一个属于自己网站?网站建设的前期准备,建站前须知的几点准备事项

没有建站经验怎样创建一个属于自己网站?网站建设的前期准备,建站前须知的几点准备事项

大家好,企泽建站相信很多的网友都不是很明白,包括没有建站经验怎样创建一个属于自己网站也是一样,不过没有关系,接下来就来为大家分享关于企泽建站和没有建站经验怎样创建一个属于自己网站的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开

2026年8月18日 03:45

有网站源码怎么改数据(如何快速随意修改网站任何数据的方法)

有网站源码怎么改数据(如何快速随意修改网站任何数据的方法)

“有网站源码怎么改数据”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看有网站源码怎么改数据(如何快速随意修改网站任何数据的方法)!本文目录如何快速随意修改网站任何数据的方法如何修改网站源代码 买了个代源码 想修改下怎么修改网

2026年5月15日 01:00

floating tobu(求初音easy dance的歌词啊~~~~~)

floating tobu(求初音easy dance的歌词啊~~~~~)

大家好,关于floating tobu很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于求初音easy dance的歌词啊~~~~~的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希

2025年7月30日 15:00

activity有哪些活动(artactivity有什么)

activity有哪些活动(artactivity有什么)

大家好,activity有哪些活动相信很多的网友都不是很明白,包括artactivity有什么也是一样,不过没有关系,接下来就来为大家分享关于activity有哪些活动和artactivity有什么的一些知识点,大家可以关注收藏,免得下次来

2026年1月1日 18:45

减肥为什么不用lose weight(put on 、 put off、 put up、 put down、哪个有 减肥 的意思)

减肥为什么不用lose weight(put on 、 put off、 put up、 put down、哪个有 减肥 的意思)

“减肥为什么不用lose weight”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看减肥为什么不用lose weight(put on 、 put off、 put up、 put down、哪个有 减肥 的意思)!本文目

2026年7月27日 16:15

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索