Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Kösz a választ, végre valaki.
    Igen, új az OO. Amit te írtál, az nem polimorfizmus?
    Nekem mindegyik változó ugyanabba az osztályba tartozik. És mindegyiknek meg akartam változtatni ugyanazt az adattagját. Átírtam én is tömbre, úgy tökéletesen működik, csak ilyen összerakósdira lennék kíváncsi :)
    Nem lehet egy objektum nevét valahogy összerakni stringből?

    Mod:Mellesleg van könyvem: Angster Erzsébet-féle

    [Szerkesztve]

    Jóra gondolsz. Akkor máshogy próbálom meg a dolgot :)
    A Java nem scriptnyelv, nem erre való, tudom csak kíváncsi vagy. Ha valamire ilyen megoldást agyaltál ki, gondolj ki mást, mert nagy valószínűséggel rossz módszer. :)
    Ettől függetlenül van kivétel (pl RPC vagy hasonló dolgok implementálása), és ezért van is megoldás minderre. Nézd meg a Java API doksiban a java.lang.reflect csomag tartalmát, mindent tartalmaz ami a nyelvi reflekcióhoz szükséges lehet. Metódusok, konstruktorok, kivételek, tömbök, mindent tud. Advanced topic!
    Hogy lássad, kb. ennyiből állna a dolog:
    ha van egy Osztaly nevű class-od, annak float function(int) metódusa, és annak egy o1 instance-ja, akkor a következő rész meghívja a függvényt, és a visszatérő értéket is megkapod.

    Method m=Osztaly.getMethod(''function'', new Class[] {int.class});
    Object ret=m.invoke(o1, new Object[] {new Integer(1)});
    float vissza=((Float)ret).floatValue();

    Kész. Persze semmi értelme ennek, mert írhatnád ezt is, ez ugyanaz:

    float vissza=o1.function(1);

    Csak az előbbinél észre se veszed ha elírtad a függvénynevet, vagy bármilyen hibát vétettél, csak futási időben, míg az utóbbinál már fordításnál. A típusbiztonság nagyon fontos a jó programban, úgyhogy törekedni kell rá. :D

Új hozzászólás Aktív témák