C++模板类似的功能在我的节目,我有下面的类层次结构:需要在Java中
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泛型无法完成这项工作。
有什么建议吗?
是[这个问题](http://stackoverflow.com/questions/1854335/how-to-create-a-java-class-similar-to-a-c-template-class)有关吗? – jdv