Подавить «Использовать синтаксис доступа к свойствам» для метода или класса

В моем проекте у меня есть делегат (написанный на Java) для получения данных RPC, большинство его методов начинаются с «get», а некоторые не требуют никаких параметров, поэтому Kotlin предлагает заменить вызовы им синтаксисом доступа к ресурсам, пока они не являются выполняя семантику свойств (ну, потому что они выполняют сетевые запросы), поэтому я хотел бы отключить все такие проверки для всех этих методов по умолчанию, а не вместо каждого вызова (да, я знаю @Suppress аннотацию для блоков , и он работает точно против того, что мне нужно).

Есть ли решение для этого, кроме переименования, чтобы они не начинались с «get»?

Я полагаю, что вы используете IntelliJ IDEA.

Вы можете перейти в Preferences, Editor, Inspection, Kotlin, Accessor call that can... и снимите флажок. (Или введите property syntax в фильтр поиска).

Это отключит это предупреждение для всего проекта. Вы также можете изменить серьезность на что-то еще, что соответствует вашим потребностям.

EDIT : вы можете использовать аннотацию @Suppress .

Предположим, что у вас есть класс Java с именем A Методы экспонирования»:

  • getA() это обычный доступ Java bean,
  • getB() это, например, сетевой вызов.

Ты можешь написать:

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

@Suppress можно использовать на нескольких уровнях. См. Документацию .

IntelliJ IDEA имеет хорошую помощь для подавления этих предупреждений. Захват экрана идеи

EDIT2 :
Отказ от ответственности: Есть и другой способ сделать это, но я не буду использовать его сам, поскольку он уродлив, и я предпочитаю иметь предупреждение, чем использовать его.

Вы можете использовать расширения 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<String>) { val a = A() println(aa) print(a.getB()) // No warning here }