CodeModel:手动插入import语句

时间:2013-04-03 20:22:41

标签: java code-generation sun-codemodel

如何使用CodeModel手动插入导入语句?

我想在直接声明中使用Arrays.toString(...)

上下文:我正在生成的代码中生成一个toString()方法,就像Eclipse一样。 Arrays类用于避免打印对我声明的数组的引用。

2 个答案:

答案 0 :(得分:2)

解决方案是参考课程:

JClass arrays = codeModel.ref(Arrays.class);

答案 1 :(得分:0)

我的解决方法是通过直接语句内的完整包声明来引用该类。

这是我目前正在编写的一小段代码,注意完整的包声明。 我还写了一些帮助器或枚举类型来快速生成某个类的完整路径作为字符串。

save.addClickListener(event -> {
        if (binder.writeBeanIfValid(pojo())) {
            infoLabel.setText("Saved bean values: " + pojo());
        } else {
            com.vaadin.flow.data.binder.BinderValidationStatus<POJO> validate = binder.validate();
            String errorText = validate.getFieldValidationStatuses()
                    .stream().filter(com.vaadin.flow.data.binder.BindingValidationStatus::isError)
                    .map(com.vaadin.flow.data.binder.BindingValidationStatus::getMessage)
                    .map(java.util.Optional::get).distinct()
                    .collect(java.util.streamCollectors.joining(", "));
            infoLabel.setText("There are errors: " + errorText);
        }
    });