Skip to main content
 首页 » 编程设计

java之字段不能是静态的吗

2024年07月26日34haluo1

此代码有错误

public class DoIt { 
    public static void main(String[] args) { 
        final class Apple { 
            public static String place = "doIt"; 
        } 
        Thread thread = new Thread(new Runnable() { 
            @Override 
            public void run() { 
                System.out.println(Constants.place); 
            } 
        }); 
        thread.start(); 
    } 
} 

错误 - 字段名称不能在非静态内部类型中声明为静态,除非使用常量表达式初始化

请您参考如下方法:

问题在于该字段是非final的:在非静态内部类的上下文中只允许final字段是静态的:

final class Apple { 
    // This should compile 
    public static final String place = "doIt"; 
}