用普通的 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只是在“包装”中提到了一个“合成类”。听起来不像是可以命名的。