(Beginner Java)类,接口或枚举期望

时间:2013-07-26 17:04:37

标签: java

原谅我发布的问题与我昨晚发布的问题非常相似。我已经简化了问题,以便提出更具体的问题:

当我使用以下代码时,我收到了(类,接口或枚举)错误:

import java.util.*;


ArrayList<egg> eggys = new ArrayList<egg>;


public class EggTest{
    public static void main(String [] args){

        egg a = new egg();
        egg b = new egg();

        eggys.add(a);
        eggys.add(b);

        for (egg eggo :eggys){
            System.out.println(eggo.size);
        }
    }
}

编译器的输出是:

eggys.java:4: class, interface, or enum expected
ArrayList<egg> eggys = new ArrayList<egg>;
^
1 error

我做的不对。任何人都可以帮我弄清楚如何使用ArrayList?

6 个答案:

答案 0 :(得分:6)

您只能在类或方法中声明变量;而不是顶级代码。

答案 1 :(得分:2)

与其他语言(如C或C ++)不同,您不能将变量或其他声明放在类或函数之外:

public class EggTest{
    public static void main(String [] args){

        egg a = new egg();
        egg b = new egg();
        List<egg> eggys = new ArrayList<egg>();
        eggys.add(a);
        eggys.add(b);

        for (egg eggo :eggys){
            System.out.println(eggo.size);
        }
    }
}

在这种情况下,局部变量看起来是更好的选择。

答案 2 :(得分:2)

Java是纯粹面向对象的语言,这意味着任何/所有属性都应该属于一个实体,即类/接口/枚举。在你的情况下,你已经定义了一个属性/变量,如下所述,它不属于类/ enum /接口,因此java编译器会抱怨它。

ArrayList<egg> eggys = new ArrayList<egg>;

您不能在其他编程语言中使用此属性,如全局变量。 Java纯粹面向对象的本质不允许这样做。

同样如下面评论中的“skiwi”所述,您的ArrayList定义中也存在语法错误。你错过了最后的括号。应该更正:

ArrayList<egg> eggys = new ArrayList<egg>();

答案 3 :(得分:1)

两件事:

  1. 将此行放在班级

    ArrayList<egg> eggys = new ArrayList<egg>;

  2. 您在以上行中缺少()。它应该是:

    ArrayList<egg> eggys = new ArrayList<egg>();

答案 4 :(得分:0)

执行以下操作。

import java.util.*;

public class EggTest{
ArrayList<egg> eggys = new ArrayList<egg>();
    public static void main(String [] args){

        egg a = new egg();
        egg b = new egg();

        eggys.add(a);
        eggys.add(b);

        for (egg eggo :eggys){
            System.out.println(eggo.size);
        }
    }
}

OR

import java.util.*;

public class EggTest{

    public static void main(String [] args){
        ArrayList<egg> eggys = new ArrayList<egg>();
        egg a = new egg();
        egg b = new egg();

        eggys.add(a);
        eggys.add(b);

        for (egg eggo :eggys){
            System.out.println(eggo.size);
        }
    }
}

只有在主方法中访问ArrayList变量时,才能使用第二种方法。

您获得的错误只是因为您尝试将ArrayList变量声明为顶级声明。 java中的变量只能在类中声明  或方法。

答案 5 :(得分:0)

我想知道 eggys 列表在课堂上方做了什么。在Java中,您不能将上面的变量声明为普通类。