簡體   English   中英

(Beginner Java)類,接口或枚舉期望

[英](Beginner Java) class, interface, or enum expected

請原諒我發布一個與我昨晚發布的問題非常相似的問題。 我已經簡化了問題,以便提出更具體的問題:

當我使用以下代碼時,我得到(類,接口或枚舉期望)錯誤:

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?

您只能在類或方法中聲明變量; 不是頂級代碼。

與其他語言(如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);
        }
    }
}

在這種情況下,局部變量看起來是更好的選擇。

Java是純粹面向對象的語言,這意味着任何/所有屬性應該屬於實體,即類/接口/枚舉。 在你的情況下,你已經定義了一個屬性/變量,如下所述,它不屬於類/ enum /接口,因此java編譯器會抱怨它。

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

您不能在其他編程語言中使用此屬性,如全局變量。 Java純粹面向對象的本質並不允許這樣。

同樣如下面的注釋中的“skiwi”所述,您的ArrayList定義中也存在語法錯誤。 你錯過了最后的括號。 應該糾正為:

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

兩件事情:

  1. 把這一行放在課堂上

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

  2. 您在上面的行中缺少()。 它應該是:

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

這樣做如下。

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);
        }
    }
}

要么

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);
        }
    }
}

僅當您在main方法中訪問ArrayList變量時,才能使用第二種方法。

您得到的錯誤只是因為您嘗試將ArrayList變量聲明為頂級聲明。 java中的變量只能在類或方法中聲明。

我想知道eggys列表在課堂上做了什么。 在Java中,您不能將上面的變量聲明為普通類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM