0
我在玩JCodeModel並試圖創建一個類;由於this link我能夠拿出這個:如何向通過JCodeModel擴展的類添加泛型類型參數?
public final class CodeModelTest
{
private CodeModelTest()
{
throw new Error("no instantiation is permitted");
}
public static void main(final String... args)
throws JClassAlreadyExistsException, IOException
{
final JCodeModel model = new JCodeModel();
final JDefinedClass c = model._class("foo.bar.Baz");
c._extends(BaseParser.class);
final JMethod method = c.method(JMod.PUBLIC, Rule.class, "someRule");
method.body()._return(JExpr._null());
final CodeWriter cw = new OutputStreamCodeWriter(System.out,
StandardCharsets.UTF_8.displayName());
model.build(cw);
}
}
所以,這個工程。 stdout上生成的代碼是:
package foo.bar;
import com.github.fge.grappa.parsers.BaseParser;
import com.github.fge.grappa.rules.Rule;
public class Baz
extends BaseParser
{
public Rule someRule() {
return null;
}
}
到目前爲止這麼好。
現在的問題是,我想extends BaseParser<Object>
而不是BaseParser
...而且我無法弄清楚如何做google搜索周圍的,儘管相當多的時間...
怎麼辦我這樣做?
沒有骰子......至少在這裏不起作用。對你起作用嗎? – fge
好的,謝謝你的帖子和其他閱讀,我發現了。你在這裏實際需要的是縮小_extended class_,而不是主要的。因此,解決方案是使用'JCodeModel'實例來生成:'model.ref(BaseParser.class).narrow(Object.class)' – fge