2

私のコードには、ByteBuffer と 2 つのコンストラクターを持つクラスがあります。コンストラクタに応じて、ByteBuffer に異なる領域を割り当てたいと考えています。

ByteBuffer data = ByteBuffer.allocate(1);

1st_constructor(arg1, arg2, arg3){
     data = ByteBuffer.allocate(5);   
}

1st_constructor(arg1, arg2){
    data = ByteBuffer.allocate(10);    
}

私は疑問に思っていました、これはこれを行う正しい方法ですか?インスタンス化されたオブジェクトがそれにアクセスできる唯一の方法だと思ったので、コンストラクターの外側で ByteBuffer を宣言しただけです (それが正しいかどうかはわかりませんが?)

ご協力ありがとうございました。

4

2 に答える 2

4

これは正しい方法です:

final ByteBuffer data;

1st_constructor(arg1, arg2, arg3){
     data = ByteBuffer.allocate(5);   
}

1st_constructor(arg1, arg2){
    data = ByteBuffer.allocate(10);    
}
于 2013-05-31T03:15:01.973 に答える
0

なぜあなたが持っているのかわからない

ByteBuffer data = ByteBuffer.allocate(1);

上記のように final としてマークするか、それが意図されている場合は別のデフォルト コンストラクタに移動します。

于 2013-05-31T03:16:59.550 に答える