日期:2014-05-20  浏览次数:20712 次

关于调用方法中内部类的问题。
Java code

public class Test5
{
    public static void main(String[] args)
    {
        
        

    }
    public static void name()
    {
        final int i = 0;
    
        class inner
        {
            public void print()
            {
                System.out.println(i);
            }
        }
    }
    
}

我想在main函数中调用 inner中的print方法。可以调用吗?如果可以,该怎么调用?

------解决方案--------------------
楼主 内部类的位置放得貌似有问题啊:


public class Test5
{
public static void main(String[] args)
{
Test5 T = new Test5();
inner i = T.new inner() ;
i.print();

}
public static void name()
{
final int i = 0;

}
class inner
{
public void print()
{
System.out.println("5");
}
}
}

------解决方案--------------------
在方法体中定义的内部类最大的特点是只能访问方法中final类型的局部变量,出了这个方法体,这个inner类无法访问。可以在方法体内创建一个inner的对象,再调用print(),但这样就有点多此一举了。
------解决方案--------------------
只能在 name方法体里调用。
Java code

public class Test5
{
    public static void main(String[] args)
    {
        name();
    }
    public static void name()
    {
        final int i = 0;

        class inner
        {
            public void print()
            {
                System.out.println(i);
            }
        }
        new inner().print();
    }

}