从具有值作为属性的对象数组创建值数组

时间:2019-06-26 05:22:42

标签: java collections

我希望从存储在列表中的[sailpoint.object.Identity@4099209b [id = 8a029c656b800bf9016b801a2d130014,name = 100]中获取名称的值。请提供帮助。

代码段:

// getObjects reurn identity objects e.g. sailpoint.object.Identity@43ac0a68[id=8a029c656b800bf9016b801a2eae0017,name=101]

List<Identity> identities = context.getObjects(Identity.class, query);

立即获得结果:

[sailpoint.object.Identity@4099209b[id=8a029c656b800bf9016b801a2d130014,name=100], sailpoint.object.Identity@43ac0a68[id=8a029c656b800bf9016b801a2eae0017,name=101]]

预期输出:

[100,101]

2 个答案:

答案 0 :(得分:2)

我将流式传输列表并使用getter提取名称:

List<String> result = 
    identities.stream().map(Identity::getName).collect(Collectors.toList());

答案 1 :(得分:1)

没有Identity对象的定义,我只能假设name属性是局部的(并通过Identity#getName()公开。在这种情况下,您可以简单地map (“翻译”)每个收集项目:

List<String> names = context.getObjects(Identity.class, query).stream()
  .map(Identity::getName)
  .collect(Collectors.toList());