代码之家  ›  专栏  ›  技术社区  ›  Mario Ishac

如果类泛型类型已绑定,则使用通配符边界?

  •  2
  • Mario Ishac  · 技术社区  · 8 年前

    class Foo {
        ...
    }
    
    class Bar<T extends Foo> {
        ...
    }
    

    Bar ,具有的任何泛型类型

    List<Bar<?>>
    List<Bar<? extends Foo>>
    

    1)

    首选哪种类型?我应该更明确地重申 (第二个选项),或者只选择列表中未绑定的通配符,并保证

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jacob G.    8 年前

    1)我假设这些列表可以包含完全相同的对象,即任何泛型类型的bar实例。这是真的吗?

    Bar<T> T 或者是 Foo

    在这种情况下,两者都是等效的。但是,阅读代码比编写代码更重要;用户可能会认为” “,但由于有界通配符 Bar