Java Reflection API简介 - 编程入门网
public boolean java.util.Stack.empty()
public synchronized java.lang.Object java.util.Stack.peek()
public synchronized int java.util.Stack.search(java.lang.Object)
在上面的结果中列出了所有java.util.Stack class的方法。Method 是在java.lang.reflect中的一个类,负责产生这个结果。 Java Reflection API简介(3)时间:2011-11-02使用Reflection检索Attributes 一个类有其他的一些实体,除了迄今为止你看到的那些。变量怎么样,举个例子?你可以使用reflection来获取这些实体的具体输出。这里是使用一个Field class的另一个例子: import java.lang.reflect.*; public class DumpFields { public static void main(String args[]) { try { Class c = Class.forName(args[0]); Field[] fields = c.getFields(); for (int i = 0; i < fields.length; i++) System.out.println(fields[i].toString()); } catch (Throwable e) { System.err.println(e); } } } 当你编译这个代码的时候并用Employee的一个argument执行它… java DumpFields Employee 你得到以下的结果: public java.lang.String Employee.empNum public java.lang.String Employee.empName 这个结果列出所有属于该类的fields和ttributes。 使用Reflection检索Constructors 这个Constructor类的例子将帮助完成对各种constructors运用的理解,以及如何使用它们。 import java.lang.reflect.*; public class DumpConstructors { public static void main(String args[]) { try { Class c = Class.forName(args[0]); Constructor[] constructor = c.getConstructors(); for (int i = 0; i < constructor.length; i++) { System.out.println(constructor[i].toString()); //To print the parameter types Class pvec[] = constructor[i].getParameterTypes(); for (int j = 0; j < pvec.length; j++) System.out.println("param #" + j + " " + pvec[j]); } } catch (Throwable e) { System.err.println(e); } } } Java Reflection API简介(4)时间:2011-11-02当你编译这个代码的时候并用Employee的一个argument执行它… javac DumpConstructors Employee …你得到以下的结果: public Employee(java.lang.String,java.lang.String) param #0 class java.lang.String param #1 class java.lang.String public Employee() 分析结果的时候你会发现Employee类有两个constructor。第一个是带参数的constructor(你也可以看到参数类型)。第二个没有采用任何参数,结果是不言而喻的。 使用Reflection在运行时执行Class Methods 假设你有一个类并想要在运行的时候使用它。下列代码显示你如何加载这个类并在运行时执行一个所期望的方法。这里假设的是那个方法的名字是setProperties而且采用java.util.Properties类型的一个argument。 Class newClass = null; Method getInstanceMethod = null; Properties prop = new Properties(); prop.put("argName", "argValue"); try { Object obj = newClass.newInstance(); getInstanceMethod = newClass.getMethod("setProperties", new Class[]{new Properties().getClass()}); } catch (Exception ex) { |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |