Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CodeModel:手动插入导入语句_Java_Code Generation_Sun Codemodel - Fatal编程技术网

Java CodeModel:手动插入导入语句

Java CodeModel:手动插入导入语句,java,code-generation,sun-codemodel,Java,Code Generation,Sun Codemodel,如何使用手动插入导入语句 我想用在直接陈述中 上下文:我正在生成的代码中生成一个toString()方法,就像Eclipse一样。Arrays类用于避免打印对我声明的数组的引用。解决方案是引用该类: JClass arrays = codeModel.ref(Arrays.class); 我的解决方法是在直接语句中通过其完整的包声明引用该类 这是我目前正在编写的一段代码,请注意完整的包声明。 我还编写了一些帮助程序或枚举类型,以快速生成某个类的完整路径作为字符串 save.addClickLi

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

我想用在直接陈述中


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

解决方案是引用该类:

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

我的解决方法是在直接语句中通过其完整的包声明引用该类

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

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);
        }
    });
save.addClickListener(事件->{
if(binder.writeBeanIfValid(pojo())){
setText(“保存的bean值:”+pojo());
}否则{
com.vaadin.flow.data.binder.BinderValidationStatus validate=binder.validate();
字符串errorText=validate.getFieldValidationStatus()
.stream().filter(com.vaadin.flow.data.binder.BindingValidationStatus::iError)
.map(com.vaadin.flow.data.binder.BindingValidationStatus::getMessage)
.map(java.util.Optional::get).distinct()
.collect(java.util.streamCollectors.joining(“,”);
infoLabel.setText(“有错误:+errorText”);
}
});

这就是你真正需要做的一切吗?这对我不起作用。它对我起作用,但也许你的问题是,在你得到它的引用后,你不使用它?您是否调用了引用上的方法?我将它用于:arrays.staticInvoke(“toString”).arg(JExpr.\u this().ref(fieldName))我将它用于文本方法名
definedClass.staticInvoke(“builder”)
。我还没有找到另一种方法来参数化对方法的泛型调用。我知道我需要使用被引用的类,但是将方法作为字符串调用实际上并不使用它,不管调用之前是否使用
.ref
Aspect.class。现在,为了导入它,我创建了一个具有该类型的额外字段(“实际使用JClass”),但这是一个非常糟糕的攻击。