小编use*_*452的帖子

Java:在匿名类中定义泛型方法

以下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)

为什么会失败?如何在匿名类中定义泛型方法?

这个问题是出于学习目的.

java anonymous-class generic-method

8
推荐指数
2
解决办法
1034
查看次数

标签 统计

anonymous-class ×1

generic-method ×1

java ×1