重载构造函数变得模棱两可

时间:2016-05-13 17:45:33

标签: java android

我有一个重载的构造函数,看起来有点像这样:

public Constructor (enum e, View v, @Nullable CustomClass1) {}
public Constructor (enum e, View v, @Nullable CustomClass2) {}

因此,在正常操作中,使用哪个构造函数由ArrayList确定。但是当ArayList被取消时,东西(显然)会让人感到困惑。

事情是,我的enum将能够解决这个问题(例如,顶部枚举将始终为A,第二个将始终为B)。

有没有办法以某种方式在枚举上使用哪个构造函数?

2 个答案:

答案 0 :(得分:1)

为此使用工厂设计模式。这是Java中的一个例子,很好地解释了它

http://www.tutorialspoint.com/design_pattern/factory_pattern.htm

答案 1 :(得分:0)

就我的具体情况而言,Jean-Baptiste Yunès建议将null投射到正确的类型是完美的。

Constructor(Enum, View, ((CustomClass1) null));

这将告诉构造函数该参数不仅仅是null,而是来自CustomClass1的东西,即null。

根据您的尝试,这可能不适合您。我建议您查看Richard Sussan's anwer,这样您就可以查看哪种方法最适合您。