首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >抑制方法或类的“使用属性访问语法”

抑制方法或类的“使用属性访问语法”
EN

Stack Overflow用户
提问于 2017-07-26 11:59:53
回答 2查看 2.1K关注 0票数 4

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

除了重命名它们,这样它们就不会以'get‘开头了,还有其他解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2017-07-26 16:11:54

我想您使用了IntelliJ的想法。

您可以去Preferences, Editor, Inspection, Kotlin, Accessor call that can...并取消它。(或在搜索筛选器中键入property syntax )。

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

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

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

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

你可以写:

代码语言:javascript
运行
复制
fun main(args: Array<String>) {
    val a = A()
    println(a.a)
    @Suppress("UsePropertyAccessSyntax")
    print(a.getB())
}

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

IntelliJ IDEA对抑制这些警告有很好的帮助。

EDIT2

免责声明:有另一种方法可以做到,但我不会亲自使用它,因为它是丑陋的,我更喜欢有一个警告而不是使用它。

您可以使用Kotlin扩展并将您的网络getter重命名如下。

Java类:

代码语言:javascript
运行
复制
public class A {
    private int a;

    int getA() {
        return a;
    }

    A _getB() {   // Was getB()
        return this;
    }
}

Kotlin档案:

代码语言:javascript
运行
复制
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
}
票数 5
EN

Stack Overflow用户

发布于 2022-11-11 13:55:06

只需在方法或类声明上面使用@Suppress("UsePropertyAccessSyntax")即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45326364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档