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