2017-06-27 123 views
1

明确铸造StringCharSequence的目的是什么? String本身实现了CharSequence接口。铸造字符串到Charsequence

Spring 4.x支持自Java 1.4以来的Java 6+和CharSequence。从Spring框架

代码片段:

public static boolean hasText(String str) { 
    // Why do we cast str to CharSequence? 
    return hasText((CharSequence) str); 
} 

public static boolean hasText(CharSequence str) { 
    if (!hasLength(str)) { 
     return false; 
    } 

    int strLen = str.length(); 
    for (int i = 0; i < strLen; i++) { 
     if (!Character.isWhitespace(str.charAt(i))) { 
      return true; 
     } 
    } 
    return false; 
} 
+12

这样它就不会无限递归。该方法实际上可以被删除。它可能只是为了向后兼容。 – EJP

+0

一种棘手的方法重载... –

+1

@EJP,oh..so我们这样做,指向编译器,我们要执行特定于'CharSequence'参数的方法。谢谢。 –

回答

4

所以它不会无限递归。该方法实际上可以被删除。它可能只是为了向后兼容。