我有一个重载的构造函数,看起来有点像这样:
public Constructor (enum e, View v, @Nullable CustomClass1) {}
public Constructor (enum e, View v, @Nullable CustomClass2) {}
因此,在正常操作中,使用哪个构造函数由ArrayList
确定。但是当ArayList
被取消时,东西(显然)会让人感到困惑。
事情是,我的enum
将能够解决这个问题(例如,顶部枚举将始终为A
,第二个将始终为B
)。
有没有办法以某种方式在枚举上使用哪个构造函数?
答案 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,这样您就可以查看哪种方法最适合您。