假设我最初声明并定义了一组整数,如下所示:
Set<Integer> s = new TreeSet<>();
现在,稍后我想使用特定于TreeSet的方法。并想象我在项目中需要很多次。下列哪种方法被认为是更好的做法?
1-在开始使用s之前,在我的方法开始之前编写此代码
s = (TreeSet) s;
2-使用包含的类型进行书写(同样在方法的开头)
s = (TreeSet<Integer>) s;
3-仅在需要访问特定于TreeSet的方法时,才从Set强制转换为TreeSet
Integer x = ((TreeSet)s).first();
答案 0 :(得分:0)
正如其他人所说,如果声明很重要,则不必在声明后失去Set
是TreeSet
的上下文。
一个TreeSet
是一个Set
,因此您应该能够将其作为Set
传递。
例如:
Set<Integer> getSetButDoSomethingSpecial() {
TreeSet<Integer> treeSet = new TreeSet<>();
//Do something specific to treeSet
return treeSet;
}