我正在编写一个通用方法,用于设置类的特定对象。说我有这个:
public class MyRecord {
public String name;
public String comment;
}
在我的方法中,我将MyRecord的一个实例传递给构造函数并保留它:
public class Processor {
private MyRecord rec;
public Processor(MyRecord rec_) {
rec=rec_;
}
.
.
.
public void doIt(Object object_) {
rec.object_=<Something>;
}
}
当我调用doIt时,我想传递MyRecord的哪个对象在方法中设置。我知道我可以为每个元素做一个不同的方法,但这不是我的问题。是这样还是类似的东西,如果是这样的话怎么样?也许我正在寻找的是一种模仿传递参考的方法。 TIA。
答案 0 :(得分:1)
你实际上可以通过使用内省和反思来完成你所要求的:
public void doIt(Field f, Object value) throws IllegalArgumentException, IllegalAccessException{
f.set(rec, value);
}
f
应该是MyRecord.class.getField("name")
。
您可以在行动here中看到它。
这听起来总的来说是一个坏主意,也许除非你正在处理有数百个字段的类,你无法重构并且不得不填充。