Java中继成 创建对象

Set<String> set = new HashSet<>();
为什么经常看见这么new对象,有什么优点?

HashSet<String> set = new HashSet<>();
这种方式比较呢?

阅读 1.5k
1 个回答

个人感觉是关注点的问题
对于Set<String> set = new HashSet<>()这种,实际上Set是一个接口,对于接口来说是不关注这个对象到底是什么,无论是HashSet,TreeSet还是其他的。是面向接口编程思想的体现。
好处是,如果有一天你发现这个位置用HashSet不合适,需要修改为带有排序功能的TreeSet,或者说需要改为线程安全的CopyOnWriteHashSet,只需要修改创建的方式就可以,不需要修改其他位置的代码了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题