Не удается создать абстрактный класс в кодовой модели?

Мой код:

JCodeModel cm = new JCodeModel();
cm._class(JMod.ABSTRACT, "TestClass", ClassType.CLASS);
cm.build(new File("."));

независимо от того, что я пишу в параметр mods или ClassType, результат всегда будет public class.

Как я могу создать абстрактный класс?


person Utku    schedule 23.06.2016    source источник


Ответы (1)


Странный. Кажется, JCodeModel не создает абстрактные классы без пакета. Следующие случаи имеют объявление пакета:

JCodeModel cm = new JCodeModel();
cm._class(JMod.PUBLIC | JMod.ABSTRACT, "test.TestClass", ClassType.CLASS);
cm.build(new File("."));

Генерирует:

package test;

public abstract class TestClass {

}

or

JCodeModel cm = new JCodeModel();
JPackage pkg = cm._package("");
pkg._class(JMod.ABSTRACT, "TestClass2", ClassType.CLASS);
cm.build(new File("."));

Генерирует:

public abstract class TestClass2 {

}
person John Ericksen    schedule 24.06.2016