【发布时间】:2015-10-16 00:08:05
【问题描述】:
我们知道如果要重载现有方法,我们应该以某种方式更改参数的数量或参数的类型。这是我的困境,我想使用重载与集合类型绑定不同的子类型
private boolean usedOverlap(Set<Variable> useVars, Set<Value> list) {
// TODO Auto-generated method stub
for(Variable use:useVars){
if(list.contains(use.getValue()))
return true;
}
return false;
}
private boolean usedOverlap(Set<Value>vaset_A,Set<Value>vaset_B){
Set<Value>intersection = new HashSet<Value>(vaset_A);
intersection.retainAll(vaset_B);
if(intersection.isEmpty())
return false;
else
return true;
}
问题是在上面的这种情况下如何使用重载。 对于第一个参数 在第一种方法中:设置 第二种方法:设置
【问题讨论】:
-
到底有什么区别?重载的问题是,据我所知,没有?
-
第一种方法我们使用 Set
第二种方法我们使用 Set -
我认为你做不到。因为,在运行时,类型将被删除,这使这两个函数具有相同的方法参数(两个
Set) -
我的意思是这两种方法的最终结果有什么区别——它们是在相同的两个集合上做同样的事情,还是它们不同?如果相同,删除一个。如果不同,请重命名。
标签: java set overloading