当我学习它时,我正在遵循对 Java 接口进行编码的实践。我有一个Function
具有 executeFunction() 方法的接口。但我想让这个方法通用。所以客户端可以传入一个字符串、布尔值、整数、双精度等列表来对它们运行聚合计算。
但是我对泛型没有很好的掌握,所以我想要一些建议和解释我在编码过程中的设计方法实际上能够做什么。我正在考虑有一个 StatsFunctions 和 ArithmeticFunctions 具体实现类,可以注入其他类以使用它们的功能。(排序尝试策略模式)。
这是我的代码:
import java.util.List;
public interface Function {
public <T> double executeFunction(List<T> vector);
}
问题:
1)。我如何使用/更改上面的这个接口以使其尽可能通用和动态?如果你能提供一些使用它的例子,这将对我的学习有很大的帮助。2)。为什么我不能执行以下操作?我收到一条错误消息:The operator "+" is undefined for the argument type T.
public class ArithmeticFunctions implements Function {
@Override
public <T> double executeFunction(List<T> vector) {
int retVal = 0;
for (int i = 0; i < vector.size(); i++) {
retVal = vector.get(i) + retVal;
}
return retVal;
}
}
先感谢您。