有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java通用表示法,<E>Set<E>

以下Java代码用于在Java中创建集合:

    Set<String> fromUi = Set.of("val1", "val2", "val3", "val4");

用术语来说,这就是代码:

static <E> Set<E> of(E e1, E e2, E e3, E e4) {
        return new ImmutableCollections.SetN<>(e1, e2, e3, e4);
    }

类型参数的“双重”用法是什么意思?i、 我们不能只说Set<E>而不是<E> Set<E>


共 (2) 个答案

  1. # 1 楼答案

    你的方法是static。它将无法访问从其类声明的类型变量,因此它需要声明自己的<type>声明。 所以这不是双重声明

    The first <E> is where static method declares which type it uses
    The second with Set<E> to specify the type of elements in a Set. 
    

    如果非静态方法使用类声明的相同泛型<type>,则不需要使用这种声明

  2. # 2 楼答案

    static <E> Set<E> of(E e1, E e2, E e3, E e4) {
    

    你可以这样理解:无论“E”是什么(对于任何类型的“E”),传递4个该类型的参数,并得到一组该类型的结果