まず、このようにフィールドとその値を取得できます
import java.lang.reflect.Field;
public class FooBar extends AbstractFooBar{
public String foo = "Search for foo";
public String bar = "Search for bar";
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
Field[] fields = FooBar.class.getFields();
// Field[] fields = AbstractFooBar.class.getFields();
for (Field field : fields) {
System.out.println(field.get(new Object()).toString());
}
}
しかし、ご想像のとおり、抽象化を使用することはできません。また、すべてのフィールドが公開されている必要があります。
リソース ファイルを使用して、クラスを初期化できます。リフレクションでフィールドを取得した後、IChoiceRenderer を使用してフィールドを DropDownChoice に渡すことができます。
DropDownChoice タイプは Field にすることができ、フィールド リストを指定して初期化できます。次に、IChoiceRenderer でモデル オブジェクトを取得できます。
それが役立つことを願っています。