怎么不可以,我下面的代码就完全是对的public class Mtest {
    private class aaa {
        private static final String temdsf = "sssssssss";
                
    }
}

解决方案 »

  1.   

    你是不是在类外调用了,这与static 的方法是一样的。
    如果你在嵌套的类外不用的话,应该不会出错。
      

  2.   

    TO: whyxx(我也是新手) 
    你把final去掉你看看.
      

  3.   

    TO: whyxx(我也是新手) 
    你把final去掉你看看.
      

  4.   

    TO: whyxx(我也是新手) 
    你把final去掉你看看.
      

  5.   

    去掉当然是不行,静态变量在内部类中,只能是final不可改变的,否则静态变量只能在最上层的class里面定义,
    不要说这样,你就是想在一个普通类的一个方法里面定义静态变量都是不允许的
      

  6.   

    确实不行
    A.java:3: inner classes cannot have static declarations
      

  7.   

    感觉上应该不行。声明为Static后,就可以不实例化直接用类名.变量名访问了。但你如果在一个未声明为静态类的内类里面出现静态变量,那该怎么访问呢。
      

  8.   

    按我的理解就是:Static变量按定义来讲是可以直接用类名.变量名访问.但现在一定要生成class b的实例才可以访问到内类的Static变量.所以形成矛盾.故不可以.
      

  9.   

    static 静态变量。。只初试化一次。
    如果是inner class.  所以在a.创立之前,就已经初始化完成。
    而java 又是要保证,在实力建立钱,所有对象初始化完成。以便complie 通过。显然。如果A类 创建成功,,显然要将 staitc b 初始化两次。。而两次初试化的意思都不同的。一次是属于A类的,一次是属于B类的。 complie会茫然的。属于干脆修限定了inner class不能有static。。加了final.它就成了一个常量。故能通过。不知道这样子理解可否被认可。