0

コード:

public static class Oya {
    String name;

    public Oya(String name) {
        super();
        this.name = name;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "Oya [name=" + name + "]";
    }

}

public static void main(String[] args) throws GridException {
    try (Grid grid = GridGain.start(
            System.getProperty("user.home") + "/gridgain-platform-os-6.1.9-nix/examples/config/example-cache.xml")) {
        GridCache<Integer, Oya> cache = grid.cache("partitioned");
        boolean success2 = cache.putxIfAbsent(3, new Oya("3"));
        log.info("Current 3 value = {}", cache.get(3));
        cache.transform(3, (it) -> new Oya(it.name + "-transformed"));
        log.info("Transformed 3 value = {}", cache.get(3));
    }
}
  1. 別の GridGain ノードを開始します。
  2. コードを実行します。次のように出力されます。3-transformed
  3. コードをコメントしputxIfAbsent()ます。
  4. コードを実行します。印刷されると思っていましたが、代わりに3-transformed取得しましたnull

キャッシュ値をString( GridGain 基本操作のビデオのように) または Java 組み込み値に変更すると、コードは機能しますが、独自のカスタム クラスでは機能しません。

4

1 に答える 1