使用Generic类型参数创建一个新的PSIClass

时间:2017-02-19 08:11:21

标签: intellij-plugin

关于IntelliJ插件开发的新手问题。

我需要生成一个参数化类(带有泛型的类),给出类的名称和类型参数的名称,但我找不到如何?

似乎PSIClass不支持泛型。

示例

鉴于

String className = "MyClass";
String typeName = "T"

我想要一个代表这个的PSIClass:

public class MyClass<T> { ... }

目标是动态地向这样的类添加方法,并最终将完整的类写入文件。该类需要声明Type变量,因为某些方法将接收/返回T

谢谢!

1 个答案:

答案 0 :(得分:0)

我在intelliJ开发者论坛中找到了一个解决方案。它似乎不是最好的,但它确实有效。

  

我建议使用   PsiFileFactory.getInstance(...)。createFileFromText( “ClassName.java”   JavaFileType.INSTANCE,“类ClassName {...}”),转换结果   到PsiJavaFile并使用其getClasses [0]作为结果。

以下是该主题的链接:

https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000089970-Create-a-new-PSIClass-with-Generic-type-parameters?page=1#community_comment_115000122164