如果发生异常,我需要将生成的String切成另一种方法获得的值。
我有一个结果方法:
private String generateSomeName() {
String basicProjectName = "Sth_" + method1();
return basicProjectName + "_" + "X" ;
}
private String method1() {
try {
Class.getNumber(); //returns String1
} catch (Exception e) {
log.warn("Unable to get this Number", e);
}
return "";
}
我的问题是,当一切正常时,我将获得字符串Sth_String1_X
但是如果有异常,我会得到空的字符串“”(没有String1),我的结果是:
Sth__X
(带双_)
我需要这样:
Sth_X
只有一个_
任何提示如何处理?
答案 0 :(得分:1)
假设使用Java 8,则只有在结果不为null和非空的情况下,才可以使用Optional
在_
方法返回的结果之前添加method1
private String generateSomeName() {
String basicProjectName = "Sth" + Optional.ofNullable(method1())
.filter(s -> s.length() > 0)
.map(s -> "_" + s)
.orElse("");
return basicProjectName + "_X" ;
}
private String method1() {
try {
Class.getNumber(); //returns String1
} catch (Exception e) {
log.warn("Unable to get this Number", e);
}
return "";
}
答案 1 :(得分:1)
private String generateSomeName() {
String basicProjectName = "Sth_" + method1();
return basicProjectName + "X" ;
}
private String method1() {
String output="";
try {
output=Class.getNumber()+"_"; //returns String1_
} catch (Exception e) {
System.out.println("Unable to get this Number "+e);
}
return output;
}