相关疑难解决方法(0)

在所有方法调用中允许类型见证的重点是什么?

假设我们有两种方法,如下所示:

public static <T> T genericReturn() { /*...*/ }
public static String stringReturn() { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

在调用任何方法时,无论是否有任何要求,您都可以提供类型见证:

String s;
s = Internet.<String>genericReturn(); //Type witness used in return type, returns a String
s = Internet.<Integer>stringReturn(); //Type witness ignored, returns a String
Run Code Online (Sandbox Code Playgroud)

但是我根本没有在Java中看到任何实际用途,除非无法推断出这种类型(这通常表明存在更大的问题).此外,当它没有被适当使用时被简单地忽略这一事实似乎违反直觉.那么在Java中有什么意义呢?

java generics

25
推荐指数
1
解决办法
1435
查看次数

用于指定泛型方法的方法引用的语法

我在"Java - 初学者指南"中阅读了以下代码

interface SomeTest <T>
{
    boolean test(T n, T m);
}

class MyClass
{
    static <T> boolean myGenMeth(T x, T y)
    {
        boolean result = false;
        // ...
        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

以下声明有效

SomeTest <Integer> mRef = MyClass :: <Integer> myGenMeth;
Run Code Online (Sandbox Code Playgroud)

关于上述代码的解释有两点

1 - 当泛型方法被指定为方法引用时,其类型参数::位于方法名称之前和之后.

2 - 如果指定了泛型类,则type参数在类名后面,并在其前面::.

我的查询: -

上面的代码是第一个引用点的示例

有人能为我提供一个实现第二个引用点的代码示例吗?

(基本上我不明白第二个引用点).

java generics method-reference

11
推荐指数
1
解决办法
4023
查看次数

标签 统计

generics ×2

java ×2

method-reference ×1