使用Java5特性来简化反射编程
来源:互联网 发布:淘宝网. 水暧毯 编辑:程序博客网 时间:2024/06/04 17:49
感谢引入var-args和auto-boxing,Java5彻底的简化了我们对反射的使用。关于var-args的一个有趣的事是:好像没有平台通知我们说,var-args现在是可用的。当然,有一些IDE在pop-up或其他的地方用Object...表识取代了Object[]标识。
但是如果你没有注意到的话,那么这对你是不公平的。看看下面的代码吧,你就会知道我为什么这么说。
package org.javalobby.tnt.vararg;
import java.lang.reflect.Method;
public class TestReflectionExample {
public static void main(String[] args) throws Exception {
String s = "Test String";
preJava5(s);
postJava5(s);
}
private static void preJava5(String s) throws Exception {
// First, do a substring
Class c = s.getClass();
Method m = c.getMethod("substring", new Class[] { int.class, int.class });
Object obj = m.invoke(s, new Object[] { new Integer(0), new Integer(4) });
System.out.println(obj);
// Next, do a 'length'
Method m2 = c.getMethod("length", null);
Integer lengthObj = (Integer)m2.invoke(s, null);
int length = lengthObj.intValue();
System.out.println(length);
}
private static void postJava5(String s) throws Exception {
// First, do a substring
Class<?> c = s.getClass();
Method m = c.getMethod("substring", int.class, int.class);
Object obj = m.invoke(s, 0, 4);
System.out.println(obj);
但是如果你没有注意到的话,那么这对你是不公平的。看看下面的代码吧,你就会知道我为什么这么说。
package org.javalobby.tnt.vararg;
import java.lang.reflect.Method;
public class TestReflectionExample {
public static void main(String[] args) throws Exception {
String s = "Test String";
preJava5(s);
postJava5(s);
}
private static void preJava5(String s) throws Exception {
// First, do a substring
Class c = s.getClass();
Method m = c.getMethod("substring", new Class[] { int.class, int.class });
Object obj = m.invoke(s, new Object[] { new Integer(0), new Integer(4) });
System.out.println(obj);
// Next, do a 'length'
Method m2 = c.getMethod("length", null);
Integer lengthObj = (Integer)m2.invoke(s, null);
int length = lengthObj.intValue();
System.out.println(length);
}
private static void postJava5(String s) throws Exception {
// First, do a substring
Class<?> c = s.getClass();
Method m = c.getMethod("substring", int.class, int.class);
Object obj = m.invoke(s, 0, 4);
System.out.println(obj);
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java 5特性来简化反射编程
- 使用反射、特性简化代码
- [Java5新特性]反射
- Tip15 使用dynamic来简化反射实现
- 如何使用LINQ来简化编程
- 使用dynamic来简化反射实现,并且提高了性能。
- 建议15: 使用dynamic来简化反射实现
- 使用反射简化findviewbyid
- 使用dynamic简化反射
- 使用LINQ来简化编程的7个技巧
- 【翻译】使用LINQ来简化编程的7个技巧
- 使用LINQ来简化编程的7个技巧
- 省份城市级联的js文件(不带县)
- 关于自动内存管理(下)
- java基础知识:KVM的扩展
- 加快Bloghelper的开发
- Struts常见异常信息和解决方法
- 使用Java5特性来简化反射编程
- 高考议论文之我见
- PHP程序员必备的7大巫术
- 类成长过程的public,private,static,protected
- 通过WinInet API来实现表单提交并设置获取COOKIE
- Java Web Start 入门基础教程
- Java 应用程序开箱即用的对象持久性
- 基于struts+spring+ibatis的轻量级J2EE开发
- js的日期控件