1

空のセルを示すための null 参照の使用を避けながら、Guava ライブラリの Optional< T > クラスを使用してオブジェクトのマトリックス (2D グリッド) を処理することを検討しています。

私は次のようなことをしています:

class MatrixOfObjects() {
    private Optional<MyObjectClass>[][] map_use;

    public MatrixOfObjects(Integer nRows, Integer nCols) {
        map_use = (Optional<MyObjectClass>[][]) new Optional[nRows][nCols];
        // IS THIS CAST THE ONLY WAY TO CRETE THE map_use INSTANCE?
    }

    public MyObjectClass getCellContents(Integer row, Integer col) {
         return map_use[row][col].get();
    }

    public void setCellContents(MyObjectClass e, Integer row, Integer col) {
         return map_use[row][col].of(e);
         // IS THIS THE CORRECT USE OF .OF METHOD?
    }

    public void emptyCellContents(Integer row, Integer col) {
         map_use[row][col].set(Optional.absent());
         // BUT SET() METHOD DOES NOT EXIST....
    }

    public Boolean isCellUsed(Integer row, Integer col) {
         return map_use[row][col].isPresent();
    }
}

上記のコードについて 3 つの質問があります。

  1. オプションの配列の配列のインスタンスを作成する方法は?
  2. MyObjectClass オブジェクトをセルに割り当てる方法 (これは正しいと思います)
  3. 参照がもう含まれないようにセルを「空」に割り当てる方法は?

この Optional クラスについて重要な何かが欠けていると思います。

ありがとう

4

1 に答える 1