java这种泛型设计

        Set<String> result = new LinkedHashSet<>(sOnline[type.ordinal()].keySet());

<String>第一个<>表示的是啥 后面的LinkedHashSet 表示的是啥?

阅读 1.2k
1 个回答

子类和父类的关系啊, LinkedHashSet<> 继承自 Set<>

<> 表示类型约束,这里就表示 Set 中存取的都是 String。前面 Set<String> 已经约束类型了,后面 LinkedHashSet<> 就可以简写了,你要是写全那也行。

不过要注意一点,Java 是“伪泛型”,会有类型擦除的,所谓泛型仅在编译时存在,编译器会做类型检查;但运行时就都已经是 Object 了,所以你要是通过反射的方式往里存其他类型也是可以的。

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