有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

类当我已经导入枚举类所在的包时,为什么需要导入枚举类才能使用它们?[爪哇]

关于用Java导入包,我有点困惑

所以我有一个里面有嵌套枚举类的类:

public class AirCraft extends PublicTransportation 
{
    private AirType classType;
    private TimeType maintainType;
    
    //default constructor
    public AirCraft() {
        super();
        classType = AirType.NONE;
        maintainType = TimeType.NONE;
    }
    
    //nested enums used for AirCraft attributes (2)
    public enum AirType {
        NONE,
        HELICOPTER,
        AIRLINE,
        BALLOON,
        GLIDER
    }
    
    public enum TimeType{
        NONE,
        WEEKLY,
        MONTHLY,
        YEARLY
    }

在我的驾驶课上,我有:

import airTransport.*; //importing the AirCraft class in which resides the two enum classes

public class DriverTransport {

    public static void main(String[] args) {
        //testing AirCraft class methods
        AirCraft secondAir = new AirCraft(50.9, 10, AirType.HELICOPTER, TimeType.MONTHLY);
    }
}

但是,我收到AirType和TimeType的“无法解析为变量”错误。如果我单独导入它们,这是固定的,但我想理解为什么简单地导入AirCraft类不起作用,即使这两个枚举在AirCraft类中

谢谢


共 (1) 个答案

  1. # 1 楼答案

    您使用了内部枚举,因此必须通过它所在的类引用它:

    AirCraft secondAir = new AirCraft(50.9, 10, AirCraft.AirType.HELICOPTER, AirCraft.TimeType.MONTHLY);
    

    您还可以静态导入整个枚举,并按照最初希望的方式使用它:

    import static other.AirCraft.*;
    

    然后:

    AirCraft secondAir = new AirCraft(50.9, 10, AirType.HELICOPTER, AirCraft.TimeType.MONTHLY);