禁止使用方法或类的“使用属性访问语法”

在我的项目中,我有一个委托(用Java编写)用于通过RPC获取数据,其中大部分方法以“get”开始,一些不需要参数,所以Kotlin建议用属性访问语法替换对它们的调用,而不是实现属性语义(当然,因为他们执行网络请求),所以我想在默认情况下禁止所有这些方法的检查,而不是每个调用的地方(是的,我知道@Suppress注释块,它和我所需要的完全相反)。

有没有任何解决方案,除了重命名,所以他们不会以“得到”开始?

我想你使用IntelliJ IDEA。

你可以去Preferences, Editor, Inspection, Kotlin, Accessor call that can...并取消选中它。 (或者在搜索filter中输入property syntax )。

这将在整个项目中禁用此警告。 您也可以将严重程度更改为适合您需要的其他内容。

编辑 :您可以使用@Suppress注释。

假设你有一个名为A的Java类公开方法:

  • getA()这个是一个普通的Java bean访问,
  • getB()这个例子是一个网络调用。

你可以写:

 fun main(args: Array) { val a = A() println(aa) @Suppress("UsePropertyAccessSyntax") print(a.getB()) } 

@Suppress可以在几个级别使用。 见文档 。

IntelliJ IDEA有很好的帮助来抑制这些警告。 想法屏幕捕获

编辑2
免责声明:还有一种方法可以做到这一点,但我不会自己使用它,因为它是丑陋的,我宁愿有一个警告,而不是使用它。

您可以使用Kotlin扩展名并像这样重命名您的网络获取者。

Java类:

 public class A { private int a; int getA() { return a; } A _getB() { // Was getB() return this; } } 

Kotlin文件:

 fun A.getB() : A { // Kotlin extension return this._getB() } fun main(args: Array) { val a = A() println(aa) print(a.getB()) // No warning here }