Java反射在Main方法的中的而应用
2012-01-15 17:45
288 查看
我们一直在学反射,反射到底是用来干什么的? 我一直也很迷糊.直到今天,终于搞清楚了。
打个比方,在JavaWeb中,如果我们想要通过用户提交的数据来决定具体调用哪个类来执行相应的功能。
没有接触到发射之前我们可能会觉得 我们可以进行多个 switch 或者 if ,这样不是不可以,但是 这样程序的编制就会变得很麻烦,代码很臃肿。
反射就很好的解决了这个问题 实时的动态的加载一个类 并执行功能。
下面就结合一个 通过执行带参数的 main方法 反射调用另一个main方法
pavkage me.test ;//打包
import java.lang.reflect.* ;//导入反射包
public class ReflectTest //一个源文件只有一个publuc类
{
public staitc void main(String []args)
{
Method m1=Class.forName(args[0]).getMethod("main",String[].class) ;//获得mian方法对应的Method类
m1.invoke(m1,new Object[]{new String[]{"me.test.Test"}}) ; // 这两种方法执相同的功能
m1.invoke(m1,(Object)new String[]{"1111","2222","3333"}) ; //这两种方法执相同的功能但是
// 我们要注意 mian方法的参数 接收的时候要进行接 解包,如果第一种外面不加 Object类型的话 那么就会报错 ,解包完成之后 剩下的就是我们的参数了
//第二个是吧 数组 转换成了 Object对象 告诉 编译器 不需要进行解包了 ,因为数组类型也是从 Object而来的
}
}
class Test
{
public static void main(String[] args)
{
for(String ar:args)
{
System.out.println(ar) ;
}
}
}
打个比方,在JavaWeb中,如果我们想要通过用户提交的数据来决定具体调用哪个类来执行相应的功能。
没有接触到发射之前我们可能会觉得 我们可以进行多个 switch 或者 if ,这样不是不可以,但是 这样程序的编制就会变得很麻烦,代码很臃肿。
反射就很好的解决了这个问题 实时的动态的加载一个类 并执行功能。
下面就结合一个 通过执行带参数的 main方法 反射调用另一个main方法
pavkage me.test ;//打包
import java.lang.reflect.* ;//导入反射包
public class ReflectTest //一个源文件只有一个publuc类
{
public staitc void main(String []args)
{
Method m1=Class.forName(args[0]).getMethod("main",String[].class) ;//获得mian方法对应的Method类
m1.invoke(m1,new Object[]{new String[]{"me.test.Test"}}) ; // 这两种方法执相同的功能
m1.invoke(m1,(Object)new String[]{"1111","2222","3333"}) ; //这两种方法执相同的功能但是
// 我们要注意 mian方法的参数 接收的时候要进行接 解包,如果第一种外面不加 Object类型的话 那么就会报错 ,解包完成之后 剩下的就是我们的参数了
//第二个是吧 数组 转换成了 Object对象 告诉 编译器 不需要进行解包了 ,因为数组类型也是从 Object而来的
}
}
class Test
{
public static void main(String[] args)
{
for(String ar:args)
{
System.out.println(ar) ;
}
}
}
相关文章推荐
- Java反射在Main方法的中的而应用
- Java反射在Main方法的中的而应用
- java反射main方法执行,map集合与实体转换器,
- 运行Java应用必须通过main()方法吗?
- Java反射-------构造方法的反射应用
- java反射main方法注意点。
- Java 反射学习(五)反射的main方法
- java反射main方法参数注意
- java反射调用main方法,private方法实现
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- Java反射笔记4—Main方法反射
- java中用反射调用其他类的main方法时应注意的问题
- Java反射的高级应用,模拟开发环境IDE动态搜索类成员以及方法,。。。。。
- 【CORE JAVA】反射应用:通用方法-扩展数组长度
- 【JAVA】【反射】JAVA 中 getMethod()和invoke()方法应用
- java反射的应用 构造方法 成员变量
- 黑马程序员_Java高薪技术之构造方法的反射应用
- Java反射的高级应用,模拟开发环境IDE动态搜索类成员以及方法,。。。。。
- java利用反射实例化类、使用类中普通方法、使用类main(静态)方法