7
votes

Setter pour une variable booléenne nommée comme Isactive

J'ai une propriété appelée isactive dans ma classe de pojo. Lorsque j'ai généré les accesseurs de cette propriété à l'aide d'Eclipse IDE, il génère des getters and Setters suivants xxx

Cependant, lorsque j'essaie d'écrire cette propriété à l'aide de la framework ibatis en mentionnant le nom de propriété comme "Isactive", Il berce de ne pas pouvoir trouver des propres infâbles nommés «Isactive». Le problème à laquelle je pense que se trouve sans pouvoir déduire le nom de propriété correct en infère Setter comme Settisactive ().

Quelle est la meilleure façon d'y aller sans changer le nom de la propriété ou getter?


3 commentaires

Si votre getter est isactive () , votre nom de propriétaire n'est-il pas un nom actif alors?


@Biziclop: Non Si vous l'essayerez, vous verrez que Getter a raison. Isactive () Getter est créé pour le champ iSactif.


Je pense que vous confondez le domaine des biens et des instances. Le nom de la propriété dans votre cas est actif , quel que soit le champ d'instance, il est soutenu. Il est même possible qu'il n'y ait pas de champ de champ de votre propriété, par ex. Propriété heures (obsolète) dans java.util.date .


5 Réponses :


12
votes

Les getters de champ booléen primitif sont créés comme isfieldname . Donc, dans Ibatis, vous devez donner le nom de la propriété comme actif pas isacacac


0 commentaires

0
votes

Il y a un moyen de sortir.

Visite Windows -> Préférences -> Java -> Style de code et désélectionnez l'option «Utiliser» est «préfixe ...» (bien sûr, vous pouvez modifier cela sur les propriétés du projet si vous n'avez pas 't veux cela comme un comportement global dans l'éclipse).

Ceci changera le comportement à xxx

moche à mes yeux mais ibatis devrait arrêter de se plaindre maintenant .


3 commentaires

Cela signifie que vous créez une mauvaise opération de contournement pour créer une propriété nommée «Isactive». Jetez un coup d'œil à la réponse de Fatih à la place :)


@Davogotland - il a une propriété nommée isacacacer et ne veut pas changer son nom. C'est comme ça que j'ai compris les exigences. S'il est prêt à changer de noms de propriété: sûr - renommer que Beast to actif . isactif est un nom de getter, pas un nom de champ ;-)


haha, tu as raison. Je n'ai même pas vu ça. Je viens de voir "isactif" et j'ai supposé que la propriété était appelée "active".



0
votes

Je n'ai pas utilisé Ibatis, mais Hibernate vous permet de spécifier le nom de la méthode d'accès. C'est là que vous pouvez remplacer le comportement par défaut des ormes pour calculer le nom de la méthode pour la définition de la propriété.


0 commentaires

5
votes

La convention de nommage pojo s'attend à ce que Boolean Types appelés xxx Pour avoir des méthodes isxxx et setxxx .

. Dans votre cas, votre pojo devrait ressembler à; xxx

Vous pouvez le démontrer vous-même en créant une classe dans votre IDE et en définissant la variable actif booléen privé variable , puis obtenir l'IDE pour générer des getters et des setters.


0 commentaires

0
votes

Merci pour les réponses. En passant par les exigences que je n'avais pas souhaité de modifier les variables de mes membres de la classe Pojo, la version Ibatis que j'utilisais ne fonctionnait pas comme prévu. Lorsque j'ai mis à niveau ma version à 2.3.4 à partir de 2.3.0, la question a été résolue et le même code a fonctionné de manière transparente. Je suppose avec cette mise à niveau, ils sont pris en compte dans la convention de haricots Java de génération d'accessoires Isactive () et SettisActive () si la propriété de type booléen primitive est définie comme Isactive. Merci!


0 commentaires