【发布时间】:2016-09-21 07:59:30
【问题描述】:
从 Java 7 开始,我们可以在同一个 catch 子句中捕获多个异常,如下所示。
try {
...
} catch( IOException | SQLException ex ) {
...
}
同样,有没有什么方法可以在不使用继承的情况下实现如下?
public void passMultipleTypes(Type1 | Type2 obj) {
...
}
obj 对象可以是 Type1 或 Type2。 我不想在这里使用继承,因为这些类是生成的,我无法更改它们。所以我不能将它们定义为
public class Test1 extends CommonSuperClass {
...
}
Type1 和 Type2 具有相似的属性。所以我正在考虑使用obj,如下所示。
public void passMultipleTypes(Type1 | Type2 obj) {
System.out.println(obj.getCode());
System.out.println(obj.getValue());
}
【问题讨论】:
-
在这里查看接受的答案:stackoverflow.com/questions/10777384/…
-
@Daneel 我不认为 OP 可以选择您建议的解决方案。生成了类,并且为这两个类实现接口可能很困难。
-
检查泛型类型。
标签: java