0

MyRecord我有一个 Scala 宏注释,它在编译时向一个类添加一个 val“x” 。

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

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

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

由于我无法更改 Java 代码,如何让添加的字段public被 Java 反射视为?

谢谢,

朱利安

4

1 回答 1

1

该字段是私有的,但 getter 是公共的。即使对于公共 val,scalac 也不会创建公共字段。

于 2014-05-21T08:24:50.453 回答