以下 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);
}
如果将该方法更改为其通用形式,程序将失败。
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);
}
为什么失败?如何在匿名类中定义通用方法?
这个问题是为了学习目的而提出的。