2014-12-08 53 views
0

我想给一个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 ......它显示我0,而不是11 22.And我想打印整个序列为11月22日通过将所有的值存储在一个数组中。我该怎么做?(现在我的问题清楚了吗?)

+0

为什么要这样做?你想达到什么目的? – 2014-12-08 09:51:33

+0

您能否通过“将一个字节分配给[n个变量]”来显示代码。因为我不太清楚你的意思。也许如果我们能看到这些代码,我们会更好地理解你想要做什么。 – 5gon12eder 2014-12-08 10:06:48

+0

@Abinaya:'print'是什么意思 - 是关于调用枚举的'toString'方法? – home 2014-12-08 10:15:20

回答

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 2014-12-08 10:09:09

+0

是的......但我仍然得到0作为他们的值,而不是那些数组{1,2,3,4} – Abinaya 2014-12-08 10:09:50

+0

@ 5gon12eder标识符是非常令人不安的? – TacB0sS 2014-12-08 10:13:58

相关问题