如何在 Java 中正确转换泛型集合?

假设我最初声明并定义了一组整数,如下所示:

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();


HUWWW
浏览 119回答 1
1回答

繁星淼淼

正如其他人所说,如果重要的话,您不需要在声明之后失去存在的背景Set。TreeSetA TreeSetis-a Set,因此您应该能够将其作为 a 传递Set。例如:Set<Integer> getSetButDoSomethingSpecial() {&nbsp; TreeSet<Integer> treeSet = new TreeSet<>();&nbsp; //Do something specific to treeSet&nbsp; return treeSet;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java