Kotlin : comment créer un getter public mais un setter privé pour une propriété ?
Bonjour ! Je viens de commencer à apprendre Kotlin et je viens de Java. En Java, j'avais l'habitude de créer des champs avec un setter privé et un getter public, par exemple :
```java
private String name;
public String getName() {
return name;
}
private void setName(String name) {
this.name = name;
}
```
Mais en Kotlin, je vois que les propriétés (var) créent automatiquement à la fois un getter et un setter. Si j'écris `var name: String`, alors le getter et le setter deviennent publics. Et si j'utilise `val name: String`, la propriété est en lecture seule — il n'y a pas de setter du tout.
J'ai besoin que la propriété soit lisible depuis n'importe où (getter public), mais que sa valeur ne puisse être modifiée qu'à l'intérieur de la classe (setter privé). Comment faire cela correctement en Kotlin ?
J'ai essayé d'écrire `private var name: String`, mais alors le getter devient aussi privé, et je ne peux pas lire la propriété depuis l'extérieur. J'ai essayé différentes combinaisons de modificateurs d'accès avant `var` et à l'intérieur de `set`, mais je me suis perdu.
Pouvez-vous m'indiquer, s'il vous plaît, comment déclarer une propriété avec un getter public et un setter privé ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Profilage du code Swift : trouver les goulots d'étranglement en pratique
Monorepo avec Rust : organisation du code en pratique
Supprimer un élément d'un tableau en PHP : guide simple pour débutants
Corriger l'erreur "Headers already sent" en PHP : guide complet