в простой 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 просто упоминает "синтетический класс" в "обертывании". Не похоже, что это можно назвать.