代码之家  ›  专栏  ›  技术社区  ›  Jake Petroules

内部错误;无法将<anonymous<any>>处的()实例化为()

  •  2
  • Jake Petroules  · 技术社区  · 14 年前

    internal error; cannot instantiate () at <anonymous <any>> to ()

    我所做的是创建一个类似 java.lang.Comparable ,定义如下:

    public interface Comparable<T>
    {
        public int compareTo(T o);
    }
    

    我的界面是:

    public interface CustomComparable<T>
    {
        public int compare(T a, T b);
    }
    

    如果我尝试使用Comparable创建一个匿名的内部类,这很好。。。

    public void someThing()
    {
        Comparable<Object> o = new Comparable<Object>()
        {
            public int compareTo(Object o)
            {
                // ...
            }
        };
    }
    

    java.lang.com

    public void someThing()
    {
        CustomComparable<Object> o = new CustomComparable<Object>()
        {
            public int compare(Object a, Object b)
            {
                // ...
            }
        };
    }
    

    6 回复  |  直到 13 年前
        1
  •  1
  •   Jason S    14 年前

    Comparator<T> Comparable<T> --接口已存在。

        2
  •  2
  •   Herb Miller    12 年前

           JSlider slider1 = new JSlider(JSlider.HORIZONTAL, -100, 100, 0);
            slider1.addChangeListener(new ChangeListener() {
               public void stateChanged(ChangeEvent e) {
                   System.out.println("Slider1: " + slider1.getValue());
               }
            });
    

    问题是没有完全限定ChangeListener。我不得不进口javax.swing.event事件.ChangeListener。

        3
  •  1
  •   RMorrisey    14 年前

    以下代码在java 1.6.0\u 20-b02中编译和运行时没有错误:

    public class Test {
        public static void main(String[] args) {
            CustomComparable<Object> o = new CustomComparable<Object>()
            {
                public int compare(Object a, Object b)
                {
                   System.out.println(a);
                   System.out.println(b);
                   return 0;
                }
            };
            o.compare("a", "b");
        }
    
        public interface CustomComparable<T>
        {
            public int compare(T a, T b);
        }
    }
    

        4
  •  1
  •   crig    13 年前

    我在netbeans6.9.1中也看到了这一点(在jdk1.6\u22fwiw下)。 我在包中有几个类在netbeans的某些行上显示错误,但它们编译时不会出错。关闭/重新打开netbeans没有解决这个问题,重建也没有。 我所做的修复就是去“触摸”包中的每个文件,将它们标记为脏文件,然后再次构建项目,它们就消失了。

        5
  •  0
  •   irreputable    14 年前

        6
  •  0
  •   jgibson    14 年前

    我最近在NetBeans中遇到了同样的问题,但这些错误并不是暂时的。

    comboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { // do stuff } });

    请注意,当我使用Ant时,它们将正确编译,但是NetBeans仍然用“internalerror;cannot instantiate()at to()”等标记它们。关于这个错误,我唯一能说的是,匿名类在一个静态初始化器中的另两个匿名类的方法中。