我想生成一个非默认方法的接口。为此,我使用了JvmTypesBuilder。
代码
meth.toMethod(meth.name, meth.returnType)[]
生成例如
public default int meth();
尝试
meth.toMethod(meth.name, meth.returnType)[
it.^default = false
]
不会改变任何事情。
将其设置为抽象作品
meth.toMethod(meth.name, meth.returnType)[
it.abstract = true
]
然后我得到一个类似
的方法public abstract int meth();
我不想要的。
有没有办法使用JvmTypesBuilder并生成没有默认或抽象关键字的方法?
public int meth();
我正在使用Eclipse 4.5.1 for DSL Developer
答案 0 :(得分:0)
请确保将方法放入界面而不是课程中。例如。请将JvmGenericType
上的界面标记设置为true
。这应该可以解决问题。
答案 1 :(得分:0)
您期望生成什么?方法可以具有实现(default
)或不具有(abstract
)。实际上,没有任何修饰符,接口方法是隐式的abstract
。
interface MyInterface
{
public abstract void foo();
}
编译为与
完全相同的字节码interface MyInterface
{
public void foo();
}