通过reflect中得到数组类型
2024-07-21 02:15:22
供稿:网友
kingfish 2005.3
今天看到一个关于通过反射如何得到数组类型的问题,试了试,可以通过array类解决。
做个记录。
代码如下:
import java.lang.reflect.*;
/** * @author kingfish * * todo java reflect */class mystring{ public mystring(string s){ system.out.println("in constructor of the mystring"); } }
public class testreflect { /** * 构造函数 * @param i */ public testreflect(int i){ system.out.println("just for test"); } public void test(){ } public void test(mystring s){ } public void test(mystring[] args){ } public static void main(string[] args) throws exception{ class c = class.forname("testreflect"); method m = c.getmethod("test", new class[]{}); system.out.println(m); //反射test(mystring)方法 m = c.getmethod("test", new class[]{mystring.class}); system.out.println(m); //反射test(mystring)方法, 并且要求mystring类也需要反射获得 m = c.getmethod("test", new class[]{class.forname("mystring")}); system.out.println(m); //反射test(mystring[])方法, 要求mystring[] 类型也反射获得 //array.newinstance返回类型数组,并不产生类的实例 m = c.getmethod("test", new class[]{array.newinstance(class.forname("mystring"),1).getclass()}); system.out.println(m); }}