通過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); }}