我可以使用Java反射来获取已使用Scala宏注释添加的成员的值吗?

时间:2014-05-20 08:20:24

标签: scala annotations scala-macros scala-macro-paradise

我有一个Scala宏注释,它添加了一个val" x"在编译时到一个类MyRecord

我还获得了一些使用MyRecord.class.getDeclaredField(x)获取添加字段值的Java代码。

javap MyRecord.class表明添加的字段确实是public,但Java代码会抛出错误,抱怨它是private final

Here这是一个简化项目,显示Java反射返回private final个成员。

由于我无法改变Java代码,如何通过Java反射将添加的字段视为public

谢谢,

儒略

1 个答案:

答案 0 :(得分:1)

该字段是私有的,但吸气剂是公开的。即使是公共场所,scalac也不会创建公共领域。