我想要一个可以在String中转换对象(带有一些参数String或int)的方法,更重要的是,将该String转换回对象。你知道为此目的开发转换器的方法吗?
问题是该对象是其他开发人员使用的DTO,因此我无法修改toString()
方法。因此我创建了自己的方法toString,但我不知道如何可靠地使转换器双向工作。我想过几个解决方案(将对象存储在地图中等),但它们似乎都不清楚阅读/理解。是否有任何通常的方法可以让每个有经验的程序员在眨眼之间了解它的作用?
所以我的最终解决方案更像是:
listView.setCellFactory(new Callback<ListView<ProductDto>, ListCell<ProductDto>>() {
@Override
public ListCell<ProductDto> call(final ListView<ProductDto> productDtoListView) {
return new ListCell<ProductDto>(){
@Override
protected void updateItem(final ProductDto productDto, final boolean b) {
if(productDto!=null){
setText(fromProductDtoToString(productDto));
}
}
};
}
});
这样,我将对象本身存储在ListView中,并且仍然可以显示代表该对象的相当美观的String。
感谢您的时间。
法比安
答案 0 :(得分:3)
例如,您可以使用Jackson将对象转换为JSON,反之亦然。查看此文章How To Convert Java Object To / From JSON
如果需要,您也可以使用XML binding。
通常,有许多序列化库/方法:
Jackson JSON,Kryo和Jackson Smile都比旧的Java对象序列化快得多,大约3倍到4.5倍。 XStream很慢。