2014-12-08 2 views
0

enum 변수에 바이트 배열 값을 할당하려고합니다. 하나의 변수에 하나의 바이트를 할당 할 수 있지만 전체 바이트 배열을 할당 할 수는 없습니다. 어떻게해야합니까? (내 질문은 터무니없는 바랍니다.)바이트 배열을 enum 변수에 할당하고 인쇄하려면 어떻게해야합니까?

public enum abc 
{ 
     a (new byte[] {0x11,0x22}, 
     b ((byte)0x17); 
     byte value; 
     byte[] val=new byte[2]; 
     private abc(byte[] val) 
     { 
      this.val=val; 
     } 
     private abc(byte value) 
     { 
      this.value=value; 
     } 
} 

을 지금 내가 abc.a 인쇄하려면 ... 대신 11 22.And의 나에게 공을 보여주고 내가 11 (22)로 전체 순서를 인쇄 할 17 배열에 모든 값을 저장하여. 어떻게 할 수 있습니까? (제 질문은 지금 명확합니까?)

+0

왜이 작업을 수행 하시겠습니까? 무엇을 성취하려고합니까? –

+0

"[n enum] 변수에 1 바이트 할당"이라는 의미의 코드를 보여 주시겠습니까? 왜냐하면 당신이 이걸로 무슨 뜻인지 잘 모르니까요. 어쩌면 우리가 그 코드를 볼 수 있다면 우리는 당신이하고 싶은 것을 더 잘 이해할 것입니다. – 5gon12eder

+0

@Abinaya : 'print'는 무엇을 의미합니까 - enums의 toString 메소드를 호출하는 것입니까? – home

답변

3

이런 식으로 뭔가?

public enum CustomEnumConstructor { 
    Fibonacci(new int[]{1, 1, 2, 3, 5, 8, 13, 21}, new int[]{34, 55, 89, 144, 233, 377, 610}, 987), 
    SternBrocot(new int[]{1, 1, 2, 1, 3, 2, 3, 1, 4, 3}), ; 

    private final int[] array; 

    private CustomEnumConstructor(int[] array1, int[] array2, int value) { 
     int[] array12 = new int[array1.length + array2.length]; 
     System.arraycopy(array1, 0, array12, 0, array1.length); 
     System.arraycopy(array2, 0, array12, array1.length, array2.length); 

     array = new int[array12.length + 1]; 
     System.arraycopy(array12, 0, array, 0, array12.length); 
     array[array12.length] = value; 
    } 

    private CustomEnumConstructor(int[] array) { 
     this.array = array; 
    } 

    public int[] getArray() { 
     return array; 
    } 
} 
+0

이것이 OP가 원하는 것일 수 있습니다. 솔직히 말해서, 귀하의 식별자는 매우 혼란 스럽습니다. 내가 의미하는 바를 이해할 때까지 코드를 세 번 읽어야했습니다. – 5gon12eder

+0

예 ...하지만 배열 값이 {0,2,3,4}이 아닌 0으로 계속 나타납니다 – Abinaya

+0

@ 5gon12eder 식별자가 매우 불안합니다? – TacB0sS

관련 문제