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 相同的属性”,因此当我检查第二个图像对象缓存时,其中没有任何内容。我需要的行为是“你又想要 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 回答