2010-10-23 22 views
2
class SomeoneElsesAPI { 
    void setDirectory(File dir){...} 
    void setDirectory(String dir){...} 
} 

<bean id="someoneElsesAPI" class="com.someone.SomeoneElsesAPI"> 
    <property name="directory"> 
     <value type="java.lang.String">/etc</value> 
    </property> 
</bean> 

J'ai un cas similaire à l'exemple ci-dessus, le printemps est lancer une IllegalStateException indiquant qu'il ne peut pas convertir la chaîne dans un fichier.Spring 3 comment définir une propriété lorsque la méthode setter est surchargé

Comment savoir quelles méthodes surchargées utiliser? Je pensais que le printemps comprendrait quand je l'ai spécifié dans le paramètre <value type="...">.

Répondre

3

Je ne sais pas si c'est une réponse satisfaisante, mais j'évite de surcharger les régleurs de propriétés que je veux pouvoir câbler en utilisant IoC. Quand j'ai besoin de deux setters pour (logiquement) la même propriété, j'utilise différents noms de setters ... et javadoc pour expliquer ce qui se passe.

+0

D'accord, mais ce code est dans Jetty une application tierce, j'ai posté un rapport de bug leur demandant de le faire, mais je ne contrôle pas autrement leur code. Je pense utiliser Java Config à la place pour contourner le problème. –

+1

Créez une classe wrapper qui masque les setters surchargés. –