, Java 10 (var name = ...;) . , , , (::<T>) .
...
var arraySorter = Arrays::<Double>sort;
... . , , , .
, , , .
class Spy {
static <T> Function<T,T> f2(Function<T,T> f) {
return f.andThen(f);
}
static <T> T identity(T t) {
return t;
}
}
, , :
Function<Double,Double> double_identity = f2(Spy::<Double>identity);
, ::<Double>
Function<Double,Double> double_identity = f2(Spy::identity);
, .
var double_identity = f2(Spy::identity);
Object obj = null;
double_identity.apply(obj);
, , .
var double_identity = f2(Spy::<Double>identity);
, . f2:
var double_identity = Spy.<Double>f2(Spy::identity);
. . Function<Double,Double> f2(...), . var name = ..., , : Object, Spy.<Object>f2(...), Function<Object,Object>.
, , , , Spy::<Double>identity Spy.<Double>f2(...) Function<Double,Double>. , Java 11? , .
var name = ...;, OP.
@Eugene Java 10.