2

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

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

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

4

2 回答 2

2

解决方案是引用该类:

JClass arrays = codeModel.ref(Arrays.class);
于 2013-04-08T21:09:51.110 回答
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);
        }
    });
于 2021-02-24T14:10:48.530 回答