Avatar ·

Wozu braucht man in Kotlin companion object und wie ersetzt es static-Felder aus Java?

Hallo zusammen! Ich habe kürzlich nach Java angefangen, Kotlin zu lernen, und bin auf ein Verständnisproblem gestoßen. In Java habe ich oft static-Felder und -Methoden verwendet, zum Beispiel für Klassenkonstanten oder Factory-Methoden: ```java public class User { public static final int MIN_AGE = 18; public static User createGuest() { return new User("Gast"); } private String name; public User(String name) { this.name = name; } } ``` In Kotlin sehe ich, dass es das Schlüsselwort static nicht gibt, stattdessen wird companion object verwendet. Aber ich verstehe nicht ganz, warum genau ein Objekt nötig ist und nicht einfach static. Warum konnte man es nicht wie in Java machen? Zum Beispiel schreibe ich so: ```kotlin class User { companion object { val MIN_AGE = 18 fun createGuest() = User("Gast") ```