[英](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>();
兩件事情:
把這一行放在課堂上
ArrayList<egg> eggys = new ArrayList<egg>;
您在上面的行中缺少()。 它應該是:
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.