在JDK8 以前的版本中使用匿名内部类时,在匿名内部类中使用局部变量时,局部变量必须被final修饰,否则会报错。在JDK8 以后及JDK8 在匿名内部类中使用局部变量时,不必添加final修饰,程序自动为这个变量添加了final
interface Product{
public double getMoney();
public String getName();
}
public class Cow {
private static Integer weight;
public Cow(Integer weight){
this.weight = weight;
}
public Cow(){}
static class CowLeg{
private String color;
public CowLeg(String color){
this.color = color;
}
public CowLeg(){}
public void info(){
System.out.println("weight:"+weight+" "+ "color:"+color);
}
}
class CowLeg2{
}
public void test(){
CowLeg cowLeg = new CowLeg("黑");
cowLeg.info();
new CowLeg2();