【发布时间】:2012-09-24 05:11:54
【问题描述】:
我正在我的程序中初始化一个HashSet:
Set<String> namesFilter = new HashSet<String>();
如果我这样初始化,这在功能上有什么不同吗?
HashSet<String> namesFilter = new HashSet<String>();
我已经阅读了this 关于集合接口的内容,并且我了解接口(嗯,除了它们在这里的使用)。我读过来自 Effective Java 的这个 excerpt,我也读过这个 SO question,但我觉得一点也不聪明。
Java 中有没有最佳实践,如果有,为什么?我的直觉是,在我的第一个示例中,它使转换为不同类型的 Set 变得更容易。但话又说回来,你只会转换为一个集合,你可以通过重新构造它来转换它。
【问题讨论】:
-
我更喜欢使用界面。如果您已经知道所有论点,那么问题是什么?有什么问题?
-
@duffymo 我听说过这些论点,但它们并没有帮助我理解。然而,这里的答案和提议的欺骗中的答案是有道理的。
标签: java generics collections constructor initialization