[英]Call method from child class stored in property
我正在為我的項目創建一個驗證類。 目前,我仍然想從通過泛型類型傳遞的類中調用方法(在本例中為getText()
)。
以下是代碼:
在該類中,我創建了一個getRules,並在其中傳遞了HashMap,其中的鍵是字段的名稱,以及規則的值。
public class PlayerValidator extends FormValidator<PlayerFormPanel> {
@Override
protected HashMap<String, String> getRules() {
HashMap<String, String> rules = new HashMap<>();
rules.put("firstNameField", "required");
return rules;
}
}
接下來,我有一個父類,其中有一個validate方法,該方法將遍歷規則並檢查規則是否有效。
abstract class FormValidator<T> {
abstract HashMap<String, String> getRules();
public void validate(T form) {
System.out.println(form.toString());
for (Map.Entry<String, String> field : getRules().entrySet()) {
System.out.println(field.getKey());
System.out.println(field.getValue());
}
}
}
在通用類型T
我獲得了PlayerFormPanel
對象,但是如何在firstNameField
(field.getKey())上調用getText()
方法呢?
您應該使用內省或倒影
for(PropertyDescriptor prop : Introspector.getBeanInfo(class).getPropertyDescriptors()){
System.out.println(prop.getReadMethod());
}
這個問題的可能重復: Java思考:如何獲取Java類的所有getter方法並調用它們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.