【发布时间】:2009-04-01 12:48:08
【问题描述】:
我有一些类似的 Java 代码:
public class Thing {
private IPolicy policy;
public Thing(IPolicy policy) {
this.policy = policy;
}
public void doSomething() {
this.policy.execute();
}
}
我的问题是:是否可以使用泛型而不是将策略传递给构造函数?我认为这意味着我希望它最终成为
public class Thing<T extends IPolicy>
但我不太喜欢泛型。
我的动机是:1)我的程序将它作为类型的一部分而不涉及构造函数(它还有其他更相关的事情要做)对我来说更有意义和 2)我尝试学习泛型。
【问题讨论】:
-
你来自 C++ 吗? (Java 泛型不是 C++ 模板。)在 Java 中,您通常使用沼泽标准 [动态] 多态性来描述行为,使用泛型来描述参数化类型。可能有必要将两者结合起来,而 C++ 可能会单独使用模板。