java ha qualcosa di simile alle proprietà c#? [duplicato]
Questa domanda ha già una risposta qui:
- Java ha "proprietà" che funzionano allo stesso modo in cui le proprietà funzionano in c#? 5 risposte
Le proprietà C# (intendo i metodi get e set) sono una caratteristica molto utile. java ha anche qualcosa di simile alle proprietà c#. Voglio dire come possiamo implementare qualcosa come il seguente codice c # in java:
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
Grazie in anticipo
5 answers
No, Java non ha l'equivalenza. Ha solo metodi di accesso e mutatore, nomi di fantasia per i metodi getter e setter. Ad esempio:
public class User {
private String name;
public String getName() { return this.name; }
public void setName(String name) { this.name = name; }
}
Potresti dare un'occhiata a Project Lombok mentre cerca di eliminare il dolore dalla scrittura del codice Java della piastra della caldaia. Consente di utilizzare le annotazioni @ Getter e @ Setter, che forniranno i metodi getBlah() e setBlah ():
public class GetterSetterExample {
@Getter @Setter private int age = 10;
}
Oppure puoi semplicemente usare @ Data e implementerà automaticamente i tuoi metodi hashCode(), equals(), toString() e getter, insieme ai setter sui campi non finali:
@Data public class DataExample {
private String name;
}
I problemi che ho trovato con il progetto, tuttavia, sono che è tutto un po ' voodoo, che può essere scoraggiante, e che devi installare un plugin eclipse (o che cosa mai) per far funzionare la compilazione automatica.
Le proprietà
Non sono solo convenienti in termini di scrittura getters
e setters
incapsulate in un'unità , ma forniscono anche una buona sintassi al punto di chiamata.
Window.Title = "New"; //which looks natural
Mentre con getters
e setters
di solito è
Window.setTitle("New");
È stata proposta di aggiungere il supporto simile a c#per le proprietà (e gli eventi) a Java, ma sembra che questo sia stato rifiutato per la prossima versione di Java (Java 7).
Vedi:
Puoi semplicemente dichiarare una variabile privata e scrivere i metodi a mano. Tuttavia, se si utilizza Eclipse, è possibile fare clic su una variabile, selezionare "Source" e "Generate getter e setter."Questo è conveniente quanto le proprietà C#.