【发布时间】:2015-07-06 11:50:59
【问题描述】:
我在“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;
}
}
以下说法有效
SomeTest <Integer> mRef = MyClass :: <Integer> myGenMeth;
上面代码的解释有两点
1 - 当泛型方法被指定为方法引用时,其类型参数位于
::之后和方法名称之前。2 - 在指定泛型类的情况下,类型参数在类名之后并在
::之前。
我的查询:-
上面的代码是第一个引用点的例子
谁能提供一个实现第二个引用点的代码示例?
(基本上我不明白第二个引用点)。
【问题讨论】:
-
这段代码无法编译。
-
@ChetanKinger :此代码不会按原样编译。首先,您必须在其中添加一个主类,然后将
SomeTest <Integer> mRef = MyClass :: <Integer> myGenMeth;放入该主类中 -
请发布MVC 代码示例。据我所知,即使我们按照您在上一条评论中所说的操作,它也不会编译。
-
@kevingomes,不幸的是,Keppil 接受的答案在您的实际问题中可能仍然不正确。虽然这是一种形式的方法参考,但它可能不是书中引用的意思。
-
@AndyBrown :那么请发布正确答案。
标签: java generics method-reference