2017-06-27 2 views
1

Quel est le but de couler String à CharSequence explicitement? String implémente lui-même l'interface CharSequence. Spring 4.x supporte Java 6+ et CharSequence est présent depuis 1.4.Coulée Chaîne à Charsequence

extrait de code de Spring Framework:

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

Afin qu'il ne se répète pas indéfiniment. La méthode pourrait effectivement être supprimée. Il est probablement seulement là pour la rétrocompatibilité. – EJP

+0

sorte de surcharger méthode délicate ... –

+1

@EJP, oh..so nous le faisons pour pointer le compilateur que nous voulons exécuter la méthode spécifique au paramètre 'CharSequence'. Je vous remercie. –

Répondre

4

Alors qu'il ne sera pas récursif infiniment. La méthode pourrait effectivement être supprimée. Il est probablement seulement là pour la rétrocompatibilité.