簡體   English   中英

Spring 表達式語言 (SpEL):檢查空字符串?

[英]Spring Expression Language (SpEL): check empty string?

使用 SpEL 檢查 String 是 null 還是空的規范方法是什么? 我想獲得與 Guava 的Strings.isNullOrEmpty(myString)相同的結果。

我的候選人:

  1. "#myString.?length=0"

  2. "#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM