class Outer
{
int x = 3;
void method(final int a )
{
final int y = 4;
class Inner
{
void function()
{
System.out.println( a);
}
}
new Inner().function();
}
}
class InnerClassDemo3
{
public static void main(String[] args)
{
Outer out = new Outer();
Outer.method(7);
Outer.method(8);
}
}
以上java程序在编译时提示Outer.method(7);
Outer.method(8);
两个引用非法,即不能从静态上下文引用非静态方法。
void method(final int a )
{
final int y = 4;
class Inner
{
void function()
{
System.out.println( a);
}
}
new Inner().function();
}
是不是在这个 void method(final int a ) 的前面一定要加上static 修饰才可以编译成功?