на простой Java я могу написать
class P {
static <A> A id (A x) { return x; }
static int y = P.<Integer>id(8);
static String bar = P.<String>id("foo");
}
в jshell я могу объявить и использовать id
jshell> <A> A id (A x) { return x; }
| created method id(A)
jshell> int x = id(8)
x ==> 8
jshell> String y = id("foo")
y ==> "foo"
но я не вижу, как сделать аргумент типа явным.
jshell> String y = <String>id("foo")
| Error:
| illegal start of expression
| String y = <String>id("foo");
| ^
Как называется подразумеваемый класс контекста?
Где (часть) спецификации jshell, которая позволила бы мне ответить на этот вопрос? http://openjdk.java.net/jeps/222 просто упоминает "синтетический класс" в "обертке". Не похоже, чтобы это можно было назвать.
REPL.$JShell$9.<String>id("hey")
для вызова метода. Это будет варьироваться в зависимости от каждой декларации. Я не знаю, что они в конечном итоге будут использовать в качестве глобального идентификатора. - person Sotirios Delimanolis   schedule 07.06.2016asList("foo").stream().map(::id)
... - person Per Huss   schedule 11.06.2016