向打电话者公开实施信息?

时间:2016-05-28 15:04:41

标签: java generics

JLS Capture Conversion中,它讨论了两种编写reverse方法签名的方法:

  1. public static void reverse(List<?> list);
  2. public static <T> void reverse(List<T> list);

    我的问题是为什么第二个向调用者公开实现信息?特别是在示例中,它表示第二个是不合需要的,因为它向调用者公开了实现信息。

1 个答案:

答案 0 :(得分:0)

列表与LT;?&GT;迭代lyst时将返回Object类型的元素。 (例如:lyst.get(..))

列表与LT; T&GT;将返回类型T的元素。

这有助于将不需要的信息隐藏到实现/使用接口的人。