我有几个非常相似的类(FloatOperand、BooleanOperand、IntegerOperand)。它们仅在调用的“解析”方法上有所不同(parseFloat、parseBoolean 等) - 我可以仅用一个 GenericOperand 类替换这个 xxOperand 类吗? (也许通过泛型/反射组合)。
public class FloatOperand implements ConditionOperand {
Float parsedNumber = 0.0f;
public FloatOperand parse(String aString) {
if(!StringUtils.isEmpty(aString)) {
parsedNumber = Float.parseFloat(aString);
}
return this;
}
public int compareTo(ConditionOperand arg) {
Float someArg = (Float) arg.getWrappedToken();
return parsedNumber.compareTo(someArg);
}
public Float getWrappedToken() {
return this.parsedNumber;
}
/************/
public interface ConditionOperand extends Comparable<ConditionOperand> {
/**
* @param aString
* - String representing a number, or a date, or a string.
*/
ConditionOperand parse(String aString);
Object getWrappedToken();
}
最佳答案
您实际上使用了不同的算法,例如此处的Float.parseFloat
。所以从我从这几行看到的来看,单独的类似乎是可以的。
关于java - 使用泛型概括不同的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10389579/