【发布时间】:2015-01-10 01:06:35
【问题描述】:
在我的程序中,我有以下类层次结构:
public abstract class Effect
{
// ...
}
public class Effect1 extends Effect
{
public static final NAME = "blah blah 1";
// ...
}
public class Effect2 extends Effect
{
public static final NAME = "blah blah 2";
// ...
}
(更多具有完全不同实现的 EffectN 类)。后来,我有了另一个使用这些 EffectN 的类:
public abstract class EffectList
{
protected Effect mEffect;
// ...
}
public class EffectList1 extends EffectList
{
public static final N = Effect1.NAME;
public EffectList1
{
mEffect = new Effect1();
}
// ...
}
public class EffectList2 extends EffectList
{
public static final N = Effect2.NAME;
public EffectList2
{
mEffect = new Effect2();
}
// ...
}
(更多的 EffectListN 类,每个 EffectN 一个)。
现在,虽然 EffectN 确实有完全不同的实现,但所有 EffectListN 都(几乎)相同——它们之间的唯一区别如上所示。
现在,如果这是 C++,所有的 EffectListN 类都可以用 1 个模板轻松生成,但是 AFAIK(对 Java 来说还很新)Java 泛型无法完成这项工作,对吗?
有什么建议吗?
【问题讨论】:
-
this question 相关吗?
标签: java