我正在使用此代码创建某种通用的转换器类:
//constructor method
public Change(Object affdObj, String affdField, float modifier) {
obj = affdObj;
//...
affectedField = affdObj.getClass().getField(affdField);
//...
affectedField.setFloat(obj, affectedField.getFloat(obj) + modifier);
}
但是我建议尽可能避免反射,因为它很慢。我被建议注意接口。不幸的是,我无法看到如何使接口适合我的代码。
因此我的问题是:如果需要访问一个他事先不知道的名称的字段除了使用反射之外还有其他选项吗?
PS
谢谢你的回复,伙计们。
由于我的问题主要以意见为基础被搁置,我认为这是我的问题的答案,即没有其他方法可以实现我的目标,在每个方面都比我的更好。换句话说,我的结论是我的方法没问题。谢谢。
答案 0 :(得分:0)
首先,反射不再慢(并且已被广泛使用)(Spring使用它,Hibernate使用它等)。所以,如果您唯一关注的是速度,那么您可以放心使用它。 关于其他方法来做你想要的,因为你提供字段名称作为字符串并识别它,你不能用接口。