求助,将两个class放在主类里就汇报错,如题目里所写。//code1
import java.util.*;
//将Apple()和Orange()放在AppleTest1里就会报错:静态上下文利不应该将非静态变量作为引用
public class AppleTest1 {
class Apple {
private static long counter;
private final long id = counter++;
public long id(){ return id; }
} class Orange {} public static void main(String [] args) {
ArrayList apples = new ArrayList(); for( int i = 0; i < 3; i++ )
apples.add(new Apple()); apples.add(new Orange());
}
}//code2
import java.util.*;
//将Apple()和Orange()放在AppleTest1外则正常
class Apple {
private static long counter;
private final long id = counter++;
public long id(){ return id; }
}class Orange {}public class AppleTest1 { public static void main(String [] args) {
ArrayList apples = new ArrayList(); for( int i = 0; i < 3; i++ )
apples.add(new Apple()); apples.add(new Orange());
}
}
请问是什么原因造成的?
import java.util.*;
//将Apple()和Orange()放在AppleTest1里就会报错:静态上下文利不应该将非静态变量作为引用
public class AppleTest1 {
class Apple {
private static long counter;
private final long id = counter++;
public long id(){ return id; }
} class Orange {} public static void main(String [] args) {
ArrayList apples = new ArrayList(); for( int i = 0; i < 3; i++ )
apples.add(new Apple()); apples.add(new Orange());
}
}//code2
import java.util.*;
//将Apple()和Orange()放在AppleTest1外则正常
class Apple {
private static long counter;
private final long id = counter++;
public long id(){ return id; }
}class Orange {}public class AppleTest1 { public static void main(String [] args) {
ArrayList apples = new ArrayList(); for( int i = 0; i < 3; i++ )
apples.add(new Apple()); apples.add(new Orange());
}
}
请问是什么原因造成的?
文件名AppleTest1.java,这样放着没问题
class Apple {
private static long counter;
private final long id = counter++; public long id() {
return id;
}
}class Orange {
}public class AppleTest1 { public static void main(String[] args) {
ArrayList apples = new ArrayList();
for (int i = 0; i < 3; i++) {
apples.add(new Apple());
apples.add(new Orange());
}
}
}
import java.util.ArrayList;public class AppleTest1
{
class Apple
{
private long counter; //删掉static
private final long id = counter++; public long id()
{
return id;
}
} class Orange
{
} public static void main(String[] args)
{
ArrayList<Apple> apples = new ArrayList<Apple>();
ArrayList<Orange> orange = new ArrayList<Orange>(); for (int i = 0; i < 3; i++)
apples.add(new AppleTest1().new Apple()); orange.add(new AppleTest1().new Orange());
}
}