Java 在子类中使用超类中的枚举

Java 在子类中使用超类中的枚举,java,enums,Java,Enums,我的基类声明一个枚举,并声明该枚举类型的字段 public abstract class Format { ... /** * compression types */ public static enum CompressionType { /** * no compression */ NO_COMPRESSION, /** * RLE8 co

我的基类声明一个枚举,并声明该枚举类型的字段

public abstract class Format {

    ...

    /**
     * compression types
     */
    public static enum CompressionType {
        /**
         * no compression
         */
        NO_COMPRESSION,
        /**
         * RLE8 compression
         */
        RLE_8,
        /**
         * RLE4 compression
         */
        RLE_4
    }

    /**
     * compression type of the image
     */
    public CompressionType compressionType;
    ...
我想要一个Format的子类为该字段设置一个值

public class Bitmap extends Format {
        ...
        // get compression type
        String cType = data[offset+30];
        if(cType.equals("00"))
            // this is what I want to do
            super.compressionType = NO_COMPRESSION;
        ...

有办法做到这一点吗?我尝试过使用super.NO_压缩,但那不起作用,我尝试过做最直观的事情,但也不起作用

使用枚举名称限定枚举。所以使用

CompressionType.NO_COMPRESSION


如果不在子类中。

请使用枚举名称限定枚举。所以使用

CompressionType.NO_COMPRESSION

如果不在子类中。

应如下所示:

this.compressionType = Format.CompressionType.NO_COMPRESSION


如果执行
格式.CompressionType.NO_COMPRESSION
静态导入,您甚至可以执行以下操作:

this.compressionType = NO_COMPRESSION
应该是这样的:

this.compressionType = Format.CompressionType.NO_COMPRESSION


如果执行
格式.CompressionType.NO_COMPRESSION
静态导入,您甚至可以执行以下操作:

this.compressionType = NO_COMPRESSION

@气垫船装满了鳗鱼就是这样!非常感谢。我现在觉得自己很笨。haha@Hovercraft_Full_Of_Eels就是这样!非常感谢。我现在觉得自己很笨。哈哈