java方法本地内部类

java方法本地内部类,java,Java,我试图将方法本地内部类对象作为参数传递给类外或类外的其他函数 public class MethodClass { public void p(){ class h{ public void h1(){ System.out.print("Java Inner class"); } } h h2=new h(); } } 这里我想传递给同一个类MethodClass中或该类之外的任何其他函数。有谁能给我这样传递参数

我试图将方法本地内部类对象作为参数传递给类外或类外的其他函数

public class MethodClass {
public void p(){
    class h{
        public void h1(){
            System.out.print("Java Inner class");
        }
    }
    h h2=new h();
}
}

这里我想传递给同一个类MethodClass中或该类之外的任何其他函数。有谁能给我这样传递参数的过程吗?

如果另一个方法需要知道这个类,那么基本上你不应该在一个方法中声明它。使其成为类本身中的嵌套类,甚至是顶级类


我不能说我曾经使用过方法本地类声明。

你说得对。传递一个“本地”内部类的方法听起来像是一个矛盾修饰法!在scjp学习指南中,它在方法局部内部类目标中给出——有人讨论过,方法局部内部类不能使用局部变量,除非它们是最终的,因为它们在堆栈中。当你试图将引用传递给其他函数时,它们将不活动,因为它们的作用域以该函数结束。因此,不要在堆栈中使用局部变量side-method-local-class…@satheesh:发生的事情是,像这样的类或匿名内部类中捕获的任何变量都会在构造时被复制。它很好用。“你只需要了解发生了什么事。”乔恩·斯基特先生……我不明白u@satheesh:如果您临时需要类的obj来执行服务,然后进行处置,则可以选择匿名内部类。方法级内部类和匿名内部类都是相同的,只是匿名内部类没有名称。@Suresh S-这不正确。匿名类始终是扩展另一个类或实现接口的类。基本上,您可以传递一个匿名内部类,因为引用变量将作为一个普通类来传递。@adarsh:即使是方法级内部类也可以扩展和实现。@Suresh这是正确的,但这在本文的上下文中没有用处question@Suresh当前位置我能看到的唯一区别是,方法级别的内部可以有命名构造函数。否则,两者都有相同的限制。此外,“匿名”具有较短的语法。