Dynamiczne tworzenie klas

0

Witam,
czy znacie może jakiś sposób/biblioteke która na podstawie interfejsu jest mi w stanie wygenerować implementację. Tzn

public interface Service{
public void metodka();

}

MagicznaKlasa.wykonaj(Service.class)

zwroci klase

public class ServiceImpl{
public viod metoda(){
}
}

Ta implementacja oczywiscie powinna mieć puste metodki.

Pozdraiwam

0

Takim cudotwórcą jest np. Eclipse.

0

Ja polecam NetBeans ;D

należy napisać

public class Klasa implements Interfejs {
}

Kliknąć na żarówkę z lewej i wybrać "Implement all abstract methods".

0

O co chodzi? Czy ta nowa klasa ma cos konkretnego robic?
Mozesz to zrobic np za pomoca Proxy.newInstance, mozesz to zrobic za pomoca jakiejs biblioteki do stubow / mockow, np jest calkiem fajny spy lib o nazwie Mockito.

0

Chodzi o to ze musze stworzyc obiekt proxy majac tylko interfejs. Jak wiadomo obiekt proxy można tworzyć tylko na podstawie implementacji. Tak wiec musze sam generowac klasy implementacji dynamicznie w kodzie

0

No ta chyba dostales recepture prawda? Proxy.newInstance? To jest w JDK, sa inne potezniejsze (i bardziej skomplikowane) narzedzia jesli potrzebujesz: asm, javassist, cglib i inne, ...

0

szczery:
a nie chodi o coś w stylu:

function ICośTam zwróćCośTamImpl() {
return new ICośTam() {
@Override
public funkcjaZCośTam() {
}
}
}

?

0

Dzieki za odpowiedzi .
Wykorzystałem ASM do generowania implementacji na podstawie interfersu, a dalej z JDK Proxy.
I działa super. Co ciekawe w ASM stworzyłem klase która implementuje interfejs(ale tak naprawde tego nie robi) tzn w interfejsie mam 5 metod a w implementacji rzadnej a klasa implementuje owy interfejs....ale dla mnie to i tak jest oki.

Dzieki za podpowiedzi

1 użytkowników online, w tym zalogowanych: 0, gości: 1