如何将字节数组分配给枚举变量并打印出来?

时间:2014-12-08 09:25:56

标签: java arrays enums byte assign

我想将一个字节数组值赋给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.我想通过将所有值存储在数组中来打印整个序列为11 22 17.我怎么能这样做?(我的问题现在清楚了吗?)

1 个答案:

答案 0 :(得分: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;
    }
}