2017-06-27 7 views
1

StringCharSequenceを明示的にキャストする目的は何ですか? String自体はCharSequenceインターフェイスを実装しています。文字列を文字列にキャストする

Spring 4.xはJava 6+をサポートし、CharSequenceは1.4以降に存在します。春のフレームワークから

コードスニペット:それは無限に再帰しないように

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、ああ...私たちは 'CharSequence'パラメータに特有のメソッドを実行したいコンパイラを指しています。ありがとうございました。 –

答えて

4

。このメソッドは実際には削除できます。おそらく後方互換性のためだけにあるでしょう。

関連する問題