如何使用Byte Buddy获取班级每个领域的价值?

问题描述 投票:0回答:1

我正在编写一个库,该库使用带有Byte Buddy的Java代理来执行运行时代码生成。我需要创建一个表达式来从类的每个字段中获取值。

如何创建表达式来访问字段值?目前我正在探索FieldDescriptionAPI,但我没有发现任何事情要这样做。

byte-buddy javaagents
1个回答
0
投票

根据您在GitHub上提供的其他信息,您将如何处理此问题:

要创建一个StringBuilder,你可以打电话给MethodCall.construct(StringBuilder.class.getConstructor())

然后,您可以调用附加到字符串构建器,如:MethodCall.invoke(StringBuilder.class.getMethod("append", Object.class)).onMethodCall(...).withField(...),您从初始字符串构建器开始,然后重复每个字段或常量,将最后一个输入提供给下一个实例。

如果类型是原始类型,则必须根据字段类型调整方法,以使其起作用。最后,你必须在toString上进行最后的方法调用。

© www.soinside.com 2019 - 2024. All rights reserved.