我正在编写一个使用Java代理和Byte Buddy来执行运行时代码生成的库。我需要创建一个表达式来从类的每个字段中获取值。
如何创建表达式以访问字段值?目前,我正在探索FieldDescription
API,但没有找到任何相关方法。
答案 0 :(得分:0)
在GitHub上提供的其他信息中,这是您的处理方式:
要创建StringBuilder
,请致电MethodCall.construct(StringBuilder.class.getConstructor())
然后,您可以像这样MethodCall.invoke(StringBuilder.class.getMethod("append", Object.class)).onMethodCall(...).withField(...)
调用字符串构建器的追加,在此,您从初始的字符串构建器开始,然后针对每个字段或常量重复一次,将最后一个输入提供给下一个实例。
如果类型是基本类型,则必须根据字段类型调整方法,以使其起作用。最后,您必须在toString
上进行最终方法调用。