2010-01-17 3 views
7

¿Es posible usar getConstructor para obtener el constructor de la clase X a continuación?Cómo 'getConstructor' donde la firma del constructor contiene una matriz java

public class A { 
} 

public class Y { 

} 

public class X extends Y { 
    public X(A a, Y[] yy) { 

    } 
    public void someMethod() throws SecurityException, NoSuchMethodException { 
     Class<? extends Y> clazz = X.class; 
     Constructor<? extends Y> c = 
      clazz.getConstructor(new Class[]{ 
         A.class, 
         /* what do I put in here for the array of Ys? */ 
        }); 
    } 
} 

Gracias

Respuesta

6

puede construir literales de clase implican notación de matriz igual que lo haría con clases de "decorar", es decir ClassName[].class. Este literal produce "la clase que describe matrices de instancias de ClassName". En su caso:

clazz.getConstructor(new Class[] { 
    A.class, 
    Y[].class 
}); 
6

O más corto.

Constructor<X> c = X.class.getConstructor(A.class, Y[].class); 
Cuestiones relacionadas