以下java代码工作正常.
public static void main(String[] arg){
JPanel p = (new JPanel());
p.add( new Object(){
JButton f(JButton x){
x.setEnabled(false);
return x;
}}.f(new JButton("B")) );
JFrame w = new JFrame("W");
w.add(p);
w.pack();
w.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
如果该方法更改为其通用形式,则程序将失败.
public static void main(String[] arg){
JPanel p = (new JPanel());
p.add( new Object(){
<T> T f(T x){
x.setEnabled(false);
return x;
}}.f(new JButton("B")) );
JFrame w = new JFrame("W");
w.add(p);
w.pack();
w.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
为什么会失败?如何在匿名类中定义泛型方法?
这个问题是出于学习目的.