Java - 将符号类对象传递给方法

时间:2018-01-13 15:06:35

标签: java

我正在编写一个通用方法,用于设置类的特定对象。说我有这个:

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。

1 个答案:

答案 0 :(得分:1)

你实际上可以通过使用内省和反思来完成你所要求的:

public void doIt(Field f, Object value) throws IllegalArgumentException, IllegalAccessException{
    f.set(rec, value);
}

f应该是MyRecord.class.getField("name")

您可以在行动here中看到它。

这听起来总的来说是一个坏主意,也许除非你正在处理有数百个字段的类,你无法重构并且不得不填充。