有类A,B
class A{}
class B extends A {}
B继承A.
在C中有方法传递参数B
class C {
   public A[] test(B b);
}
利用反射将b的数组创建出来,并返回.
如何操作??

解决方案 »

  1.   

    Class.getDeclaredClasses() 是否适用?
      

  2.   

    理解不了问题,不过关于反射的操作可以参阅java.lang.reflect包中的类
      

  3.   

    坦白说我不知道这个有没有专门的方法 不过LZ可以这样实现他
    public static void main(String[] args) throws Exception {
    System.out.println(getStringArray(String.class, 5));
    } public static String[] getStringArray(Class<?> classObject, int length)
    throws Exception {
    String[] strings = new String[length];
    for (int i = 0; i < length; i++) {
    strings[i] = ((String) classObject.newInstance());// 最好是在你知道类型的情况下 不知道也没关系 可以用泛型
    }
    return strings;
    }
      

  4.   

    package com.fhd.financial.analysis.test;public class Test {
    public static void main(String[] args){
    A a=new B();
    try{
    print(getArray(a,10));
    }catch(Exception e){
    e.printStackTrace();
    }
    }

    public static void print(Object... list){
    for(Object o:list){
    System.out.println(o);
    }
    }

    public static Object[] getArray(
    Object  o,
    int  count
    ) throws Exception{

    Object[] a=new Object[10];
    Class cls=o.getClass();

    for(int i=0;i<count;i++){
    a[i]=cls.newInstance();
    }

    return a;
    }
    }class A{

    }class B extends A{
    static int guid=0;

    int num;

    public B(){
    num=guid++;
    }

    @Override
    public String toString(){
    return "B["+num+"]";
    }
    }