【发布时间】:2013-06-20 22:02:26
【问题描述】:
我想写一个可以接受两种相似类型的函数。但不一样。
MyClassA {
abc()
a2b()
}
MyClassB {
abc()
a3b()
}
这两种方法中的一种方法是相同的。该函数应该接受这两种类型中的任何一种,我想在列表中的对象上调用 abc()。
这似乎没有帮助:
private <T> Set<MyclassX> createObject(List<T> classes) {
Set<MyclassX> x;
if ( T instanceof MyClassA) {
for ( MyClassA a : classes ) {
if (a.abc().equals("somethig")) {
x.add( t.abc());
}
}
}
return x;
}
我什至不需要检查instanceof。我只需要遍历列表并比较值。如果匹配,则调用方法abc()
【问题讨论】:
-
编译和运行代码时会发生什么?你有任何错误吗?
-
另外请出示is
t的声明? -
你的两个类中方法的返回类型是什么。
-
其实我正在尝试写两种方法。但是eclipse显示两者实际上是相同的。是的,这两种方法都接受不同类型的列表。但是列出来。所以它不允许。
-
两者都返回相同的 MyClassX
标签: java list generics methods