Sobes.tech
Junior — Middle

Hogyan valósítható meg egy olyan minta, mint a Kotlinban lévő companion object Java-ban?

sobes.tech MI

Válasz az MI-től

Kotlinban a companion object lehetővé teszi egy olyan objektum létrehozását, amely a osztályhoz kapcsolódik, és tartalmazhat statikus tagokat és függvényeket. Java-ban ennek megfelelője az osztályon belüli statikus mezők és metódusok használata.

Példa egy olyan mintázat megvalósítására, amely hasonló a companion objecthez Java-ban:

public class MyClass {
    // Statikus beágyazott osztály a statikus tagok csoportosítására
    public static class Companion {
        public static void doSomething() {
            System.out.println("Hívás a Companion-ból");
        }
    }
}

// Használat:
MyClass.Companion.doSomething();

Emellett egyszerűen deklarálhatunk statikus metódusokat és mezőket a osztályban anélkül, hogy beágyazott osztályt használnánk:

public class MyClass {
    public static void doSomething() {
        System.out.println("Statikus metódus");
    }
}

// Használat:
MyClass.doSomething();

Így Java-ban a companion object helyett a osztály statikus tagjai vagy egy beágyazott statikus osztály használható a tagok csoportosítására.