我编写了一个Groovy脚本,需要访问一个带有private访问修饰符的字段,这可以正常工作,但会生成一个警告:Access to <field_name> exceeds its access rights
我想取消这个警告。我必须使用@SuppressWarnings
注解的什么值来实现它?
我试过@SuppressWarnings("all")
,效果很好,但是我想对抑制进行更细粒度的控制。我也试过@SuppressWarnings("AccessingNonPublicFieldOfAnotherObject")
,但是没有效果。
以下是此警告在IntelliJ中的显示方式:
不幸的是,自动提示并不建议任何明智的解决方案:
2条答案
按热度按时间mjqavswn1#
如果您正在谈论IntelliJ警告:
然后,您可以在违规者上按Alt+Enter,并选择“禁止使用方法”,如下所示:
之后,您将在测试方法上看到
@SuppressWarnings("GroovyAccessibility")
:pjngdqdw2#
当我在Gradle项目中使用buildSrc文件夹时,我遇到了这个“问题”,该文件夹包含Gradle构建脚本的Kotlin代码,并在Groovy代码中使用。
看起来是因为我访问的是私有变量字段而不是getter。Kotlin默认将字段设置为私有。我通过在Kotlin代码中使用@JvmField解决了这个问题,它将变量字段设置为公共,并且不为该字段生成getter。