根据特定字符串加载相应的方法,有人用if else,有人用switch。参数少了或情况少了还好,很多方法真要命,不要紧,java反射拯救你
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args) throws Exception {
Test t=new Test();
Class extends Test> c = t.getClass();//Returns the runtime class of this Object.即返回类
Object obj = c.newInstance();//Returns the runtime class of this Object即返回类对象
for (int i = 1; i <= 5; i++) {
//Returns a Method object that reflects the specified declared method of the class or interface represented by this Class object。
//即返回根据上述特定类或接口中的指定方法
Method m = c.getDeclaredMethod("method"+i);
m.invoke(obj);
}
}
@SuppressWarnings("unused")
private static void method1() {
System.out.println("方法1");
}
@SuppressWarnings("unused")
private static void method2() {
System.out.println("方法2");
}
@SuppressWarnings("unused")
private static void method3() {
System.out.println("方法3");
}
@SuppressWarnings("unused")
private static void method4() {
System.out.println("方法4");
}
@SuppressWarnings("unused")
private static void method5() {
System.out.println("方法5");
}
}
结果如下:
方法1
方法2
方法3
方法4
方法5
C# 利用反射动态加载dll
笔者遇到的一个问题,dll文件在客户端可以加载成功,在web端引用程序报错.解决方法:利用反射动态加载dll 头部引用加: using System.Reflection; 主要代码: Assembl ...
利用“反射”动态加载R文件中的资源
前几天做一个Android下面数据库相关的应用.用ListVIew展示表中数据的时候我希望能给表中每一条记录,加一个展示的图片.但是用数据库保存图片是比较难搞的.于是就把所需图片都保存到res下的dr ...
java反射并不是什么高深技术,面向对象语言都有这个功能,而且功能也很简单,就是利用jvm动态加载时生成的class对象
java反射并不是什么高深技术,面向对象语言都有这个功能. 面向对象语言都有这个功能,而且功能也很简单,就是利用jvm动态加载时生成的class对象,去获取类相关的信息 2.利用java反射可以调用类 ...
微信小程序(五) 利用模板动态加载数据
利用模板动态加载数据,其实是对上一节静态数据替换成动态数据:
java——Class、动态加载
Class和Object混淆了? Object: 任何类都是Object类的子类 Class: 任何类都是Class的实例对象 Class可以说是一种特殊的类,它表示的是类类型,Object仍然是Cl ...
Java之——Web项目中DLL文件动态加载方法
本文转自:https://blog.csdn.net/l1028386804/article/details/53903557 在Java Web项目中,我们经常会用到通过JNI调用dll动态库文件来 ...
java反射动态加载类Class.forName();
1,所有的new出来的对象都是静态加载的,在程序编译的时候就会进行加载.而使用反射机制Class.forName是动态加载的,在运行时刻进行加载. 例子:直接上两个例子 public class Ca ...
C# 如何利用反射来加载程序集,并调用程序集中有关类的方法【转】
假设在C盘根目录下有个Dog的Dll程序集文件,该程序集文件中包含类Dog 该类中有个狗叫几声的方法,如何通过反射来加载这个C:\Dog.dll,并且调用Dog类里面的Sound方法呢: public ...
java反射--动态加载
Class.forName("类的全称") 1)不仅表示类的类类型,还表示了动态加载类 2)请区分编译,运行 3)编译时刻加载类是静态加载类,运行时刻加载类是动态加载类 比如下面: ...
随机推荐
HTML5应用程序缓存Application Cache
什么是Application Cache HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用. A ...
iOS、Xcode监测键盘的显示和隐藏变化,并获得键盘高度,改变tableView的frame和偏移