我使用的是Vaadin14和Java1.8。我想实现一个多选组合框,这就是我使用以下Vaadin插件的原因:https://vaadin.com/directory/component/multiselect-combo-box/api/org/vaadin/gatanaso/MultiselectComboBox.html
实例化和使用combobox效果很好,但是我得到了一个错误
java.lang.RuntimeException: java.lang.ClassCastException: Cannot cast java.util.Collections$EmptySet to java.util.HashSet
尝试“保存”组合框中未选择任何项目的对象时。如果我至少选择了一个项目,它工作正常,但一旦选择为空并且我尝试保存对象(“另一个类”),我就会收到错误。
// creating a combobox
private MultiselectComboBox<MyClass> multiselectComboBox;
multiselectComboBox= new MultiselectComboBox<>();
// setting items to choose from
final MyClassDataProvider dataProvider = new MyClassDataProvider();
List<MyClass> allAvailableOptions = new ArrayList<>(dataProvider.getItems());
multihtml" target="_blank">selectComboBox.setItems(allAvailableOptions);
multiselectComboBox.setItemLabelGenerator(MyClass::getName); // display name only
// binding the combobox to a field of AnotherClass
binder = new BeanValidationBinder<>(AnotherClass.class);
binder.forField(multiselectComboBox)
.bind("myHashSet");
// save-button
save = new Button("Save");
save.addClickListener(event -> {
if (currentObject!= null
&& binder.writeBeanIfValid(currentObject)) { // error in this line
viewLogic.saveRisk(currentObject);
}
});
HashSet是以下类中的一个属性:
public class AnotherClass implements Serializable {
@NotNull
private int id = -1;
private HashSet<MyClass> myHashSet= new HashSet<MyClass>();
}
当我创建AntherClass的实例时,我总是不使用null实例化它们,而是使用属性myHashSet的空HashSet实例化它们。
如何修复上述错误?
在尝试了@Rogue在评论中给我的提示后,我用Set尝试了一下
public class AnotherClass implements Serializable {
@NotNull
private int id = -1;
private Collection<MyClass> myHashSet= new HashSet<MyClass>();
}
我们正在从Spring 5.0迁移到Spring Boot 2.4版本。我的控制器代码如下 响应主体是一个HashMap,如上图所示。这段代码在普通的spring webapp中运行良好。同样的代码当我们厌倦了SpringBoot时,我们会得到以下错误 这个错误是在执行代码时从Spring-webmvc.jar的AbstractMessageConvertermetodProcessor.clas
[[在recycler视图中获取错误,传递hashmap,然后添加到ArrayList,但给出错误,请帮助执行此操作]1
我试图在Spring boot应用程序中传递Docker env变量。yml是这样的: 但是当我使用env变量 和 我犯了这个错误: 有什么想法吗
你能解释一下为什么会发生这种情况,我怎样才能解决它吗? 所以我使用的是Oracle ADF和shuttle组件。我使用
我使用的是 在我的申请中 也是 和 第一次调用
问题内容: 我有一个简单的类,并且可以强制转换为集合接口(或),而不会出现任何编译器错误。请注意,该类不实现任何接口或扩展任何其他类。 当我尝试将类转换为集合时,为什么Java编译器不返回 不兼容类型错误? 没有实现。我预计会出现不兼容的类型错误,因为给定当前的类签名,所以不能是。 问题答案: 不是因为它们是集合类,而是因为它们是 接口 。没有实现它们,但是可以实现它的子类。因此,这不是编译时错误