gpt4 book ai didi

java - 为方法或类抑制 "Use property access syntax"

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:44 26 4
gpt4 key购买 nike

在我的项目中,我有一个委托(delegate)(用 Java 编写)用于通过 RPC 获取数据,它的大多数方法以 'get' 开头,有些不需要参数,因此 Kotlin 建议用属性访问语法替换对它们的调用,同时它们不满足属性语义(好吧,因为它们执行网络请求),所以我想默认禁止所有这些方法使用的所有此类检查,而不是代替每个调用(是的,我知道 @Suppress block 注释,它的工作方式与我需要的完全相反)。

除了重命名它们以便它们不会以“get”开头之外,是否有任何解决方案?

最佳答案

我想您使用的是 IntelliJ IDEA。

您可以转到 Preferences、Editor、Inspection、Kotlin、Accessor call that can... 并取消选中它。 (或在搜索过滤器中键入 property syntax)。

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

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

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

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

你可以这样写:

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

@Suppress 可以在多个级别使用。参见 Documentation .

IntelliJ IDEA 可以很好地帮助抑制这些警告。 Idea screen capture

编辑2:
免责声明:还有另一种方法可以做到这一点,但我不会自己使用它,因为它很难看,而且我更喜欢收到警告而不是使用它。

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

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<String>) {
val a = A()
println(a.a)
print(a.getB()) // No warning here
}

关于java - 为方法或类抑制 "Use property access syntax",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45326364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com