我有两个Java-Classes,如下所示:
public class MyClass {
...
}
public class MyClassList extends ArrayList<MyClass> {
...
}
现在我有任何以MyClassList
为参数的方法。该方法也应该接受MyClass
。我知道我可以重载该方法。
是否有可能只用一种方法获得相同的结果?我正在考虑MyClass
中的方法,该方法会自动被调用并将自身强制转换为MyClassList
。
答案 0 :(得分:3)
没有。您必须重载该方法。您无法在Java中提供用户定义的隐式转换。
答案 1 :(得分:1)
但MyClassList
不会延伸MyClass
。
如果由于某种原因,您希望单个方法同时接受Object
和MyClass
,则您的方法必须采用MyClassList
类型。然后,如果你想使用他们的特定类型,你将不得不进行instanceof
测试(除非你想做的只是调用属于Object
的方法)。
我认为两种不同的方法是最好的行动方案。