gpt4 book ai didi

java - CodeModel接口(interface)创建Java

转载 作者:行者123 更新时间:2023-12-01 11:14:14 29 4
gpt4 key购买 nike

我目前正在从事动态java源代码创建工作,遇到了一个问题。到目前为止一切都工作正常,但接口(interface)不行。

UMLClass = codemodel._class(JMod.PUBLIC, umlInterface.getName(), ClassType.INTERFACE);

//UMLClass是一个JDefinedClass,umlInterface.getName()只是一个String

如果我尝试运行此代码,它会创建如下所示的源代码:

public class Bull {

private final static long bli;
private final static double bla;

abstract void abstractOperation();
}

它没有将其命名为接口(interface),我还没有弄清楚为什么,因为 JType 设置为 INTERFACE 应该创建一个接口(interface)?

最佳答案

这是 CodeModel 中的一个错误:

JCodeModel._class(fullyqualifiedName, ClassType.INTERFACE) create aconcrete class if fullyqualifiedName is in root package. When callingjCodeModel._class(fullyqualifiedName, ClassType.INTERFACE),iffullyqualifiedName does not have a ".", the classtype is set to CLASS.

https://github.com/javaee/jaxb-codemodel/issues/24

因此您需要为您的接口(interface)指定完全限定名称。

以下内容可以完成这项工作:

    JCodeModel codeModel = new JCodeModel();
JDefinedClass bull = codeModel._class(JMod.PUBLIC, "com.Bull", ClassType.INTERFACE);
System.out.println("is interface " + bull.isInterface());
codeModel.build(new File("/home/user"));
System.out.println("done!");

BufferedReader br = new BufferedReader(new FileReader("/home/user/com/Bull.java"));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}

关于java - CodeModel接口(interface)创建Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024359/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com