声纳抱怨以下行:
@UiField
Button saveBtn;
变量“ saveBtn”必须是私有的,并且具有访问器方法。
但是,当我将可见性修改器设置为
private
时,IntelliJ IDEA会抱怨:@UiField'saveBtn'不应该是'private'
关于此冲突的最佳解决方案是什么(除了禁用此声纳警告)?
最佳答案
GWT的代码生成要求@UiFields
不是私有的。在编译期间运行的UIBinder代码生成器将为您创建很多Java代码,这些Java代码会动态添加到您的项目中。
此代码将直接访问字段并将小部件绑定到您的变量。生成的代码未使用任何访问器,没有选项允许这样做。 (实际上,这掩盖了事实,这些变量实际上是已设置的,并且使注释的语义清晰可见,这是很有意义的)。
这就是要求这些字段不允许为私有字段的理由。因此,除了禁用该类的声纳警告外,别无选择。
关于java - 如何将@UiField字段设为私有(private),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29566490/