Я назначаю объект дочернего класса ссылкой на родительский класс. Используя отражение, я хочу получить доступ к методам установки дочерних классов. Я могу получить методы set set для дочерних классов, но также получаю метод setter объекта родительского класса. Я прямо проверяю метод установки родительского класса путем жесткого кодирования имен методов сейчас. Как я могу избежать этого?Как избежать методов родительских объектов при использовании отражения в Java
public abstract class A {
String val;
public String getVal() {
return val;
}
public void setVal(String val) {
this.val = val;
}
}
public class B extends A{
String valB;
public String getValB() {
return valB;
}
public void setValB(String valB) {
this.valB = valB;
}
}
A a = new B();
for (Method method : a.getClass().getMethods()){
if (isSetter(method) && !(checkUnwantedMethods(method.getName()))) {
method.invoke(a, "someValue");
}
}
public static boolean isSetter(Method method){
if(!method.getName().startsWith("set")) return false;
if(method.getParameterTypes().length != 1) return false;
return true;
}
public boolean checkUnwantedMethods(String methodName){
return (methodName.equals("setVal");
}
спасибо большое :) .. это сработало – JSFUser