java - 实例化新内部类时,内部类不是公共(public)错误

标签 java inner-classes access-modifiers

我有这门课

package com.rafael;

public class Vehicle {

    public class InnerVehicle {
        InnerVehicle() {
            System.out.println("This is InnerVehicle");
        }
    }
}

并在主函数中

import com.rafael.Vehicle;

public class VehicleTest {
    public static void main(String[] args) {
        Vehicle v = new Vehicle();
        Vehicle.InnerVehicle iv = v.new InnerVehicle();
    }
}

但这总是给我带来错误:

java: InnerVehicle() is not public in com.rafael.Vehicle.InnerVehicle; cannot be accessed from outside package

最佳答案

创建内部类public static

否则,您需要外部类的一个对象来创建内部类的实例,如 Tim Biegeleisen 已经提到的

并创建内部类的构造函数 public也是

类似于:

public class Vehicle {    
    public static class InnerVehicle {
        public InnerVehicle() {
            System.out.println("This is InnerVehicle");
        }
    }
}

关于java - 实例化新内部类时,内部类不是公共(public)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40070360/

相关文章:

java - Wicket Auth 角色入门

java - 如何通过 Insubstantial 正确设置 JInternalFrame 标题栏的样式

java - 在其中创建静态嵌套类的实例

包含所有非公共(public)类的 Java 文件,其中一个类具有 main 方法

ios - 公共(public)与内部访问修饰符

java - 编辑二进制文件中的特定字节 - Java

java - 用于填充 Map 的 Lambda

java - 如何从静态 main() 方法调用内部类的方法

Scala 内部类类型

java - 如何使用箭头符号(->)创建 protected 方法?