0

リスト内で、同じインスタンスオブジェクトを複数回参照したいと思います。

- text: Here is an object with some data that will allow an image to be generated
  image: &FirstIm
      imageType: ABC
      otherTypE: CB
- text: Later on, lets show you the same image again!
  image: *FirstIm

私がやっていることは、提供されたプロパティを使用して画像を生成し、それを画像オブジェクトにキャッシュすることです。特定の実装のため、画像を再度生成することはできません。そのため、画像オブジェクトの特定のインスタンスを参照し直したいと思います。

残念ながら、snakeYAMLは上記を「ああ、別のオブジェクトが必要ですが、FirstImと同じプロパティを持っている」と処理するため、2番目の画像オブジェクトのキャッシュを確認しても何もありません。私が必要とする振る舞いは、「FirstImをもう一度欲しい、わかりました、それをそこに置いておく」です。

より高いレベルのキャッシュを参照するために画像オブジェクトで何らかの文字列を使用せずにこれを達成する方法はありますか?

これが理にかなっていることを願っています...

4

1 に答える 1

1

あなたのコードにいくつかの問題があると思います、またはあなたの質問からのyamlはテストにうまく合格するので、私はまだ質問を理解していません。

コメントにコードを入れることはできません。だからここにあります。

import java.util.List
import java.util.Map
...
Yaml yaml = new Yaml();
List load = yaml.loadAs("- text: Here is an object with some data that will allow an image to be generated\n  image: &FirstIm\n    imageType: ABC\n    otherTypE: CB\n- text: Later on, lets show you the same image again!\n  image: *FirstIm", List.class);
assertSame(((Map)load.get(0)).get("image"), ((Map)load.get(1)).get("image"));
于 2012-08-31T06:12:04.227 に答える