java - 仅在成员函数内创建嵌套内部类的对象

标签 java inner-classes

假设我有一个内部类 B,我将在外部类的一个成员函数内部创建一个实例,有没有一种方法可以在不创建外部类实例的情况下实现?

非常感谢。

class A {
    class B {

    }

    public void function() {
       // create an instance of B, normally have to create a 
       // instance of A to be bond to by b
       B b = new B();
    }
}

最佳答案

唯一的方法是声明 B static:

class A {
    static class B {

这意味着 B 没有与之关联的 A 实例,并且可以在没有可用外部实例的上下文中实例化。

也就是说,您当前的代码可以按原样编译(因为 function() 是非static,所以的一个实例A 在此上下文中可用)。

关于java - 仅在成员函数内创建嵌套内部类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15964111/

相关文章:

java - 当 stackoverflow 错误没有指向我们的 java 代码时,如何处理它

Java - public int indexOf(int ch)

java - 为什么我不能在泛型类上静态引用内部类的静态方法?

java - 是否可以重新创建 JVM?

java - 如何使目录在 javafx TreeView 中可扩展

java - 如何在带有验证注释的 bean 属性的测试用例中引发 ConstraintValidationException?

java - 这对于嵌套类来说是一个好的情况吗?如果是这样,它应该是静态的吗?

java - 从静态内部类访问外部类的静态变量

java - 有了这个 Java 代码示例,我对内部类有了初步的了解吗?

Java:静态与内部类