gpt4 book ai didi

java - 按某种模式过滤 pojo 属性

转载 作者:行者123 更新时间:2023-12-02 11:18:58 24 4
gpt4 key购买 nike

我有一些服务器响应(很长),我已将其转换为 POJO(通过使用 moshi 库)。

最终我有“项目”列表,每个“项目”看起来如下:

public class Item
{
private String aa;
private String b;
private String abc;
private String ad;
private String dd;
private String qw;
private String arew;
private String tt;
private String asd;
private String aut;
private String id;
...
}

我真正需要的是提取所有以“a”开头的属性,然后我需要使用它们的值来进一步请求...

有什么方法可以在没有反射的情况下实现它? (也许使用流?)

谢谢

最佳答案

通过 Guava 函数转换,您可以使用以下内容来转换您的项目:

 public static void main(String[] args) {
List<Item> items //
Function<Item, Map<String, Object>> transformer = new Function<Item, Map<String, Object>>() {
@Override
public Map<String, Object> apply(Item input) {
Map<String, Object> result = new HashMap<String, Object>();
for (Field f : input.getClass().getDeclaredFields()) {
if(! f.getName().startsWith("a")) {
continue;
}
Object value = null;
try {
value = f.get(input);
} catch (IllegalAccessException e) {
throw new RuntimeException("failed to cast" + e)
}
result.put(f.getName(), value);
}

return result
};
Collection<Map<String, Object> result
= Collections2.transform(items, transformer);
}

关于java - 按某种模式过滤 pojo 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50069761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com