[英]Spring Expression Language (SpEL): check empty string?
使用 SpEL 檢查 String 是 null 還是空的規范方法是什么? 我想獲得與 Guava 的Strings.isNullOrEmpty(myString)
相同的結果。
我的候選人:
"#myString.?length=0"
"#myString = ''"
不確定是否有規范,並且文檔非常模糊( https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#expressions-operators )
這是根據最新文檔完成的方式:
不為 null 或為空#myString > ''
null 或空#myString <= ''
不為空或空白#myString?.trim() > ''
null 或空白#myString?.trim() <= ''
/*
list=['a','b']
list=[]
list=""
*/
${empty list}//false
${empty list1}//true
${empty list2}//true
您可以在對象上調用任何 Java 方法,例如#myString.length()
、 #myString.isEmpty()
或#myString.isBlank()
。 我想說,這將是檢查字符串是空還是空白的規范方法。
對於 null 或空: #myString == null || #myString.isEmpty()
#myString == null || #myString.isEmpty()
對於 null 或空白: #myString == null || #myString.isBlank()
#myString == null || #myString.isBlank()
您可以使用以下方法進行測試:
System.out.println(new SpelExpressionParser().parseExpression("#root?.isEmpty()").getValue("x")); // false
System.out.println(new SpelExpressionParser().parseExpression("#root?.isEmpty()").getValue("")); // true
System.out.println(new SpelExpressionParser().parseExpression("#root?.isEmpty()").getValue((Object) null)); // null
System.out.println(new SpelExpressionParser().parseExpression("#root == null || #root.isEmpty()").getValue("x")); // false
System.out.println(new SpelExpressionParser().parseExpression("#root == null || #root.isEmpty()").getValue("")); // true
System.out.println(new SpelExpressionParser().parseExpression("#root == null || #root.isEmpty()").getValue((Object) null)); // true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.