我有一个场景需要验证给定的输入参数是否为空,我有一系列带有数据类型字符串和日期的字段 - productId,productName,productType,productRating,productSellDate和productReturnDate
我想检查这些输入参数是否null
或empty
或blank
,对于每个字段,如果任何一个字段为empty
或blank
或null
,它应该抛出NullPointerException
,并附上字段名称。
请在下面找到我的代码 - 由于我是Java的新手,请原谅我的编码标准。当我抛出NullPointerException
时,我不知道如何获取具有empty
或null
的字段名称。
我正在为每个字符串调用validate
和validateDate
,是否有一种选项可以一次性验证所有这些参数?
如果有更好的编写以下代码的方法,请建议。非常感谢您的帮助!谢谢。
import java.util.Date;
public class Test {
public static void main(String[] args) {
String productId = "";
String productName = "Apple";
String productType = "Electronics";
String productRating = "Good";
Date productSellDate = new Date();
Date productReturnDate = new Date();
System.out.println(validate(productId));
System.out.println(validate(productName));
System.out.println(validate(productType));
System.out.println(validate(productRating));
System.out.println(validateDate(productSellDate));
System.out.println(validateDate(productReturnDate));
}
private static String validate(String s) {
if (s.isBlank() || s.isEmpty()) {
throw new NullPointerException("input param is empty"); // how to get the string field name which is empty or null or blank
} else {
return "valid";
}
}
private static String validateDate(Date d) {
if (d == null) {
throw new NullPointerException("sell or return date is empty"); // how to get the date field name which is empty or null or blank
} else {
return "date is valid";
}
}
}
org.apache.commons.lang3
中的ObjectUtils
。ObjectUtils.allNotNull(productId, productName, productType, productRating, productSellDate, productReturnDate);
- stephane brun@NotNull(message = "propertyX为空")
- stephane brunvalidate
,并添加第二个方法参数,即您要验证的事物的名称,例如validate(String name, String value)
和validate(String name, Date value)
。 - AbraDate
类。该类设计不佳且过时已久。相反,请使用来自java.time,现代Java日期和时间API的LocalDate
。 - Ole V.V.