PsiClass.getMethods()
为了得到Java和Kotlin类的所有方法。到目前为止一切都很好,所以我使用了像这样的方法
PsiClass.add(), PsiClass.addAfter(), PsiClass.addBefore()
一旦在Java文件上调用它们,它们就可以正常工作,但开始抛出异常
IncorrectOperationException
有一次我在科特林课上给他们打电话。
如果有任何关于如何修改Kotlin和Java类的提示(最好使用相同的方法),我将不胜感激。
当您通过javapsifacade
搜索Kotlin类时,它会返回light类,这是一个基于类文件中信息的浅表示形式。为了添加PSI元素,必须对其调用navigationelement
。然后,IJ将解析源代码并构建一个可修改的完整PSI树。
但是,如果类是Kotlin类,NavigationElement
将返回一个KtClass
,它不是从Psiclass
派生的。您必须使用Kotlin层次结构中的设施来修改它。Kotlin中的方法实例也不是psimethod
的实例,而是ktmethod
的实例。
为了以一种常见的方式分析Java和Kotlin源代码,有一个不同的语法树,称为“UAST”,但是对于修改,您需要一个特定于语言的方法。
假设您正在编写一个Android项目(不是库)。所有文件都编译在一起,因此......在这种情况下使用可见性修饰符有任何意义吗?
我有一个类包含如下所示同伴对象。 我想在运行时修改同伴对象的属性。我将在这个类中添加数百个属性。所以我要做动态。我使用了这个方法,得到如下错误。
说明 支付宝境外到店支付-修改商户二维码 官方文档:https://global.alipay.com/service/merchant_QR_Code/34 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayCrossBorder\InStore\ModifyMerchantQR\Request 属性 名称 类型 说明 $service string 接口名称 $qrcod
请求地址 https://api.es.xiaojukeji.com/river/Approval/update 返回数据格式 JSON 请求类型 POST 请求参数 参数名称 数据类型 必选 说明 client_id string yes 申请应用时分配的AppKey access_token string yes 授权后的access token timestamp string yes 当前
请求地址 https://api.es.xiaojukeji.com/river/Member/edit 返回数据格式 JSON 请求方式 POST 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的AppKey access_token string yes 授权后的access t
请求地址 https://api.es.xiaojukeji.com/river/BudgetCenter/edit 返回数据格式 JSON 请求方式 POST 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的AppKey access_token string yes 授权后的ac