Java 返回值为空的字符串

Java 返回值为空的字符串,java,Java,我有几个常数,如下所示: public String name; public String surname; public String age; public String postcode; 如果这个值中有一个==null那么我必须返回关于这个的信息,我可以这样做: if(name == null && surname == null && age == null && postcode == null) { return &q

我有几个常数,如下所示:

public String name;
public String surname;
public String age;
public String postcode;
如果这个值中有一个
==null
那么我必须返回关于这个的信息,我可以这样做:

if(name == null && surname == null && age == null && postcode == null) {
      return "You need to provide: name, surname, age and postcode";
} else if(name == null) {
      return "You need to provide name";
} else if(age == null) {
      return "You need to provide age";
} //etc.

我不想这样做,是否有更好的解决方案,例如使用
Optional

Optional与此问题无关

List<String> missing = new ArrayList<String>();
if (name == null) missing.add("name");
if (surname == null) missing.add("surname");
if (age == null) missing.add("age");
if (postcode == null) missing.add("postcode");

if (missing.isEmpty()) return null;
if (missing.size() == 1) return "You need to provide " + missing.get(0));
return "You need to provide: " +
  String.join(", ", missing.subList(0, missing.size() - 1)) +
  " and " +
  missing.get(missing.length() - 1);
List missing=new ArrayList();
如果(name==null)缺失。添加(“name”);
如果(姓氏==null)缺失。添加(“姓氏”);
如果(age==null)缺失。添加(“age”);
如果(邮政编码==null)缺失。添加(“邮政编码”);
if(missing.isEmpty())返回null;
如果(missing.size()==1)返回“您需要提供”+missing.get(0));
return“您需要提供:+
String.join(“,”,缺少.subList(0,缺少.size()-1))+
“和”+
缺少.get(缺少.length()-1);
根据缺少的字段是1个还是多个,需要不同的格式,并注入“and”方面,这使得事情变得更加复杂


注:询问“姓名”和“姓氏”是一件愚蠢的事。地球上有超过一半的人口有一个不适合这种模式的名字。只需输入“name”,一个字符串,就可以了。另外,“age”显然不是字符串。

您可以使用
java.util.Objects\requirennoull(T)

这是它的java文档:

检查指定的对象引用是否为空。此方法主要用于在方法和构造函数中进行参数验证,如下所示:

public Foo(条形){
this.bar=Objects.requirennull(bar);
}

如果对象为
null
,则将抛出
NullPointerException
。你可以随心所欲地处理它。例如,使用您提供的代码中的一条消息。

您为什么不按照上面的方式执行此操作?有什么具体的原因吗?你到底想要什么?这些不是常量,只是正则字段。与编写大型if语句不同,使用Java Validation API进行验证,结合Spring,您将获得自动验证。将字符串设置为可选,或者使用switch case,if-else构造-为什么不使用man?用户需要返回特定于每个字段的自定义字符串消息
requiresNonNull
将引发异常并停止执行