Méthodes et variables statiques en Kotlin : comment remplacer le static de Java ?
Bonjour ! Je passe de Java à Kotlin et j'ai rencontré un problème. En Java, j'utilisais souvent des méthodes et variables statiques pour les classes utilitaires, les constantes ou les méthodes d'usine. Par exemple, une classe simple en Java :
```java
public class MathUtils {
public static final double PI = 3.14159;
public static double square(double x) {
return x * x;
}
}
```
J'ai essayé d'écrire la même chose en Kotlin, mais le compilateur génère une erreur lorsque j'essaie d'utiliser le mot-clé `static`. J'ai lu qu'en Kotlin il n'y a pas de `static` en tant que tel, mais il y a des "companion objects". J'ai essayé :
```kotlin
class MathUtils {
companion object {
val PI = 3.14159
fun square(x: Double): Double = x * x
}
}
```
Cela fonctionne, mais plusieurs points me perturbent :
1. Pourquoi faut-il écrire `companion object` et pas simplement `static` ?
2. Puis-je appeler ces méthodes sans créer d'instance de la classe, comme en Java (`MathUtils.square(5.0)`) ?
3. Existe-t-il une manière plus simple ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs