我有一个Scala宏注释,它添加了一个val" x"在编译时到一个类MyRecord
。
我还获得了一些使用MyRecord.class.getDeclaredField(x)
获取添加字段值的Java代码。
javap MyRecord.class
表明添加的字段确实是public
,但Java代码会抛出错误,抱怨它是private final
。
Here这是一个简化项目,显示Java反射返回private final
个成员。
由于我无法改变Java代码,如何通过Java反射将添加的字段视为public
?
谢谢,
儒略
答案 0 :(得分:1)
该字段是私有的,但吸气剂是公开的。即使是公共场所,scalac也不会创建公共领域。