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