无法使用反射访问方法 API
Cannot access a method using Reflection API
我正在尝试访问 setter 并使用反射 API 在 运行 时更改值。我有一个 JasperReport
对象,它有一个名为 getDefaultStyle
的方法,它又允许我调用 setFontName
方法,像这样
jasperReport.getDefaultStyle().setFontName()
'setFontName' 将字符串作为方法参数并将其设置为字体。我正在尝试像这样在运行时更改字体值
on(jasperReport).call("getDefaultStyle").call("setFontName").set("fontName", "Helvetica");
但是,我遇到了这个错误
org.jooq.tools.reflect.ReflectException: java.lang.NoSuchMethodException: No similar method setFontName with params [] could be found on type class java.lang.Object.
在反思方面不太有经验API,需要一些帮助。
我不知道这个倒影API不过你好像变身了
on(jasperReport).call("getDefaultStyle").call("setFontName").set("fontName", "Helvetica");
对此:
on(jasperReport).call("getDefaultStyle").call("setFontName", "Helvetica");
因为您需要将新值作为参数传递。
翻译成 "normal" java 就是 jasperReport.getDefaultStyle().setFontName("Helvetica")
而不是
jasperReport.getDefaultStyle().setFontName().fontName = "Helvetica"
我认为您认为这没有意义,因为您首先使用不带参数的 setter() 设置字段,然后尝试在返回的 void
上设置字段
我正在尝试访问 setter 并使用反射 API 在 运行 时更改值。我有一个 JasperReport
对象,它有一个名为 getDefaultStyle
的方法,它又允许我调用 setFontName
方法,像这样
jasperReport.getDefaultStyle().setFontName()
'setFontName' 将字符串作为方法参数并将其设置为字体。我正在尝试像这样在运行时更改字体值
on(jasperReport).call("getDefaultStyle").call("setFontName").set("fontName", "Helvetica");
但是,我遇到了这个错误
org.jooq.tools.reflect.ReflectException: java.lang.NoSuchMethodException: No similar method setFontName with params [] could be found on type class java.lang.Object.
在反思方面不太有经验API,需要一些帮助。
我不知道这个倒影API不过你好像变身了
on(jasperReport).call("getDefaultStyle").call("setFontName").set("fontName", "Helvetica");
对此:
on(jasperReport).call("getDefaultStyle").call("setFontName", "Helvetica");
因为您需要将新值作为参数传递。
翻译成 "normal" java 就是 jasperReport.getDefaultStyle().setFontName("Helvetica")
而不是
jasperReport.getDefaultStyle().setFontName().fontName = "Helvetica"
我认为您认为这没有意义,因为您首先使用不带参数的 setter() 设置字段,然后尝试在返回的 void