【发布时间】:2021-01-15 03:27:34
【问题描述】:
我有一长串要从 JAXB 自动生成的类中进行的对象映射。
customer.setCustomerId(rentalCustomer.getCustomerid().getValue()));
customer.setCustomerName(rentalCustomer.getTradingname().getValue());
customer.setVatNumber(rentalSearchCustomer.getVatNumber().getValue());
....
....
基本上我需要对所有字段进行空检查:
getValue(RentalCustomerIDType idType){
if(idType != null){
return idType.getValue();
}
else {
return "";
}
}
问题是这些类型太多了,而且它们都有不同的类型:RentalCustomerIDType、TradingType、VatNumberType..etc
是否有一种优雅的方法可以通过创建一个 GENERIC 方法来进行 null 检查并为 ALL 返回正确的值(也许使用 Java 功能库)?
【问题讨论】:
-
idType.getValue()是否总是一个字符串?或者也可以是其他类型? -
好的,那么我们只需要找到您要调用的所有这些方法的共同点。这些类型是否都扩展了某个类或实现了某个接口?是否所有方法都命名为
getValue()?否则我们只需要写出一个又大又长的 switch-case 语句。 -
@Spring 我建议不要对那些试图帮助你并提出澄清问题的人大喊大叫。
-
好的,有点混乱。所有 getValue() 方法都返回一个字符串吗?如果没有,他们会返回什么。以及包含 getValue() 方法的类的示例。
-
@Spring 它让我明白了问题所在。对不起我的坚持。但这是一个有趣的问题,所以我将继续研究它。但我有一个简单的问题?您是否为具有 getValue() 方法的每种类型编写了类?还是每种类型都实现了一些指定
getValue方法的接口?
标签: java