当我通过 Java 代码进行调试时,我经常在我的应用程序中看到很多对我有用的对象属性来获取它们并使用它们做一些事情,但是我查看 API 或 javadocs,该类没有任何此类属性或 getter获取这些属性值的方法。例如:
myPhoneCallObj.foo has value "bar" in debugger
myPhoneCallObj.baz has value otherObj which in turn has other values like otherObj.baz
我不能用 Java 做:
String myValue = myPhoneCallObj.foo
因为它不会在 Java 中编译,但在 Groovy 中我可以编写上面的代码,并且在运行时,它会得到我需要的值。如何在 Java 代码中完成相同的操作?
myPhoneCallObj 是 Java 接口 PhoneCall 的一个实例,调试器将其显示为 PhoneCallImpl 类型(接口的第三方实现)。我无权访问该第三方的源代码以了解了解,但该接口具有完整的文档和 API 的 Javadoc。