Я пишу собственную проверку, чтобы запретить некоторые методы.Поэтому, если кто-то вызывает запрещенный метод foo
в экземпляре класса A
, lint должен сообщить об ошибке.
Я добился этого для статических методов, подобных этому (внутри visitCallExpression(UCallExpression)
:
node.receiver as UReferenceExpression).getQualifiedName()
Из полного имени я могу получить объект Class
и выполнить проверку, но не могу получить полное имя для методов, вызываемых для экземпляра объекта. Я могу получить имя класса, к которому принадлежат объекты, но не полное имя.
Как получить квалифицированное имя класса метода, который вызывается в экземпляре этого класса? Если я неясен, вот пример.
import android.view.Button;
class ButtonSetTextIntClass {
private Button button;
public void bannedSetText (){
button.setText(123);
}
}
И мне нужнов visitCallExpression (UCallExpression)
получить квалифицированное имя / класс button
.