如何给intellij插件创建的psi class添加关键字?
How to add keywords to the psi class created by the intellij plugin?
我正在开发我的第一个 Intellij 插件,它在用户当前正在处理的文件中生成大量 java 静态内部 classes。我能够生成内部 classes 并将字段添加到该内部 class,但是生成的内部 classes 是非静态的我如何制作内部 class是静态的吗?
通过一些研究,我知道这可以通过 psiFactory.createClassFromText()
实现,但出于某种原因我不想使用这种方法。
我认为在少数项目中使用以下代码可以实现相同的效果
mClass.addBefore(mFactory.createKeyword("static", mClass), mClass.findInnerClassByName(Utils.getInnerClassName(), true));
但我无法为我做同样的工作,这是我创建内部 classes
的代码
private void createStaticInnerClass(String className) {
PsiClass innerClass = psiFactory.createClass(className.trim());
addFieldsToClass(innerClass);
psiClass.add(subClass);
}
谁能告诉我如何使内部 class 静态化?
提前致谢
最后我可以通过下面一行神奇的代码innerclass.getModifierList().setModifierProperty("static", true);
制作一个静态内部class
我正在开发我的第一个 Intellij 插件,它在用户当前正在处理的文件中生成大量 java 静态内部 classes。我能够生成内部 classes 并将字段添加到该内部 class,但是生成的内部 classes 是非静态的我如何制作内部 class是静态的吗?
通过一些研究,我知道这可以通过 psiFactory.createClassFromText()
实现,但出于某种原因我不想使用这种方法。
我认为在少数项目中使用以下代码可以实现相同的效果
mClass.addBefore(mFactory.createKeyword("static", mClass), mClass.findInnerClassByName(Utils.getInnerClassName(), true));
但我无法为我做同样的工作,这是我创建内部 classes
的代码 private void createStaticInnerClass(String className) {
PsiClass innerClass = psiFactory.createClass(className.trim());
addFieldsToClass(innerClass);
psiClass.add(subClass);
}
谁能告诉我如何使内部 class 静态化?
提前致谢
最后我可以通过下面一行神奇的代码innerclass.getModifierList().setModifierProperty("static", true);