2010-01-17 13 views
7

È possibile utilizzare getConstructor per ottenere il costruttore della classe X in basso?Come 'getConstructor' dove firma del costruttore contiene l'array 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? */ 
        }); 
    } 
} 

Grazie

risposta

6

È possibile costruire letterali di classe che coinvolgono la notazione di matrice proprio come si farebbe con le classi "non decorati", vale a dire ClassName[].class. Questo letterale produce "la classe che descrive le matrici di istanze di ClassName". Nel tuo caso:

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

o più breve.

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