【发布时间】:2023-03-29 00:47:01
【问题描述】:
我正在编写自定义 lint 检查以禁止某些方法。所以如果有人在 A 类的实例上调用了被禁止的方法 foo,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 的限定名称/类。
【问题讨论】:
标签: java android kotlin lint android-lint