2014-10-07 3 views
1

내 기본 클래스는 열거 형을 선언하고 해당 열거 형 유형의 필드를 선언합니다.하위 클래스의 수퍼 클래스에서 열거 사용

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; 
    ... 

그리고 Child 클래스의 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_COMPRESSION을 사용해 보았지만 작동하지 않습니다. 가장 직관적 인 작업을 시도했지만 작동하지 않습니다.

답변

4

은 다음과 같이해야합니다

this.compressionType = Format.CompressionType.NO_COMPRESSION 

또는

this.compressionType = CompressionType.NO_COMPRESSION 

당신이 Format.CompressionType.NO_COMPRESSIONstatic 가져 오기를 할 경우, 당신이 할도 수 :

this.compressionType = NO_COMPRESSION 
3

열거 형 이름으로 열거 형을 한정하십시오. 자식 클래스에없는 경우에 따라서

CompressionType.NO_COMPRESSION 

또는

Format.CompressionType.NO_COMPRESSION 

를 사용합니다.

+0

@Hovercraft_Full_Of_Eels이를 그게 다야! 고맙습니다! 나는 지금 바보 같아. 하하 – Tetramputechture

관련 문제