これはむしろ奇妙なことですが、自己メソッドを呼びたいと思います。Javaの自己反映
私の目標は、列のすべてのフィールドを通してAbstractMapperコンストラクタ繰り返し処理、およびそのそれぞれのセッターのすべてを呼び出すことで、これは私の抽象クラス
public abstract class AbstractMapper {
public AbstractMapper(Map<String, String> map) {
Field[] fields = this.getClass().getDeclaredFields();
for (Field field: fields) {
if (field.getAnnotation(Column.class) != null) {
String fName = field.getName();
String rsName = field.getAnnotation(Column.class).name();
StringBuilder sb = new StringBuilder("set")
.append(Character.toUpperCase(fName.charAt(0)))
.append(fName.substring(1));
String mName = sb.toString();
// this.invoke(mName, map.get(fName)); <-- What should I put this here?
}
}
}
public Result getCalculatedValues() {
return xxxx;
}
}
であり、これは今、私のクラス
public class NewMachine extends AbstractMapper{
@column(name = machine)
private String machine;
@column(name = temperature)
private Double temperature;
// normal get/set methods
}
です。
この場合には、私が
Map<String, String> map = SomeClass.SomeMethod();
NewMachine m = new NewMachine(map);
Result r = m.getCalculatedValues();
のようなものを渡すことができますご協力いただきありがとうございます。
なぜこれをやりたいですか? – aksappy
ああ..何も特別なものではありません。どのようにコード化するか、どのように動作するか、どのくらい高速であるかを見たいだけです。 – Magician