Java a-t-il quelque chose de similaire aux propriétés C #?

Les propriétés C # (je veux dire les méthodes get et set) sont très utiles. Java a-t-il quelque chose de similaire aux propriétés C #? Je veux dire comment nous pouvons implémenter quelque chose comme le code C # suivant dans Java:

public ssortingng Name { get { return name; } set { name = value; } } 

Merci d’avance

Non, Java n’a pas l’équivalence. Il n’a que des méthodes d’accesseur et de mutateur, des noms de fantaisie pour les méthodes getter et setter. Par exemple:

 public class User { private Ssortingng name; public Ssortingng getName() { return this.name; } public void setName(Ssortingng name) { this.name = name; } } 

Vous pouvez jeter un coup d’œil au projet Lombok qui essaie d’écrire le code Java de la plaque de la chaudière. Il vous permet d’utiliser les annotations @Getter et @Setter, qui fourniront les méthodes getBlah () et setBlah ():

 public class GetterSetterExample { @Getter @Setter private int age = 10; } 

Ou vous pouvez simplement utiliser @Data et il implémentera automatiquement vos méthodes hashCode (), equals (), toSsortingng () et getter, ainsi que les parameters sur les champs non finaux:

 @Data public class DataExample { private Ssortingng name; } 

Les problèmes que j’ai rencontrés avec le projet, cependant, sont que tout cela est un peu vaudou, ce qui peut être rebutant, et que vous devez installer un plug-in eclipse (ou autre) pour que la compilation automatique fonctionne.

Les propriétés sont non seulement pratiques en termes d’écriture de getters et de setters encapsulés dans une unité, mais elles fournissent également une bonne syntaxe au point d’appel.

 Window.Title = "New"; //which looks natural 

alors qu’avec les getters et les setters c’est habituellement

 Window.setTitle("New"); 

Il y a eu une proposition d’append un support de type C # pour les propriétés (et les événements) à Java, mais il semble que cela soit rejeté pour la prochaine version de Java (Java 7).

Voir:

  • Pourquoi n’y aura-t-il pas de propriétés natives dans Java 7?
  • Propriétés Java sans Getters et Setters

Vous pouvez simplement déclarer une variable privée et écrire les méthodes à la main. Cependant, si vous utilisez Eclipse, vous pouvez cliquer sur une variable, sélectionner “Source” et “Générer des getters et des setters”. C’est à peu près aussi pratique que les propriétés C #.