Tengo un pequeño problema en mi códigoproblema en el GetDeclaredMethods (Java)
tengo 2 clases
public class A {
public A foo(int a) {return new A();}
}
public class B extends A{
public B foo(int x){ return new B();}
}
ahora en mi código Quiero imprimir sólo el método que fue declarado en la clase B
de esta manera
B b = new B();
Method[] m = b.getClass().getDeclaredMethods();
for (int i = 0; i < m.length; i++) {
System.out.print(m[i].getName());
}
por qué la salida es
foo
foo
¿por qué GetDeclaredMethods encuentra también el foo en la clase A? ¿cómo puedo solucionarlo?
gracias
en ambos casos el getDeclaringClass devuelve B – Dazel