Zakładając Mam klasy jakJak stworzyć interfejs przy starcie
public class FooImpl
{
public void bar(){};
}
Czy istnieje sposób, aby stworzyć swój interfejs w czasie wykonywania?
np.
public interface Foo
{
public void bar();
}
czekałem na Javasssist i prawdą jest, że to odbicie, że jestem zainteresowany w użyciu interfejs (jak Esko Luontola i Yishai stwierdził)
Więc chcę interfejs, który określa podzbiór oryginalnych metod klasowych, z których można utworzyć proxy.
zdałem sobie sprawę, że jest więcej rzeczy, które mają być zaniepokojeni jak
- Jeśli ponowne wykorzystanie tego interfejsu lub utwórz nowy za każdym razem?
- Klasa proxy jest w rzeczywistości nową instancją typu java.lang.reflect.Proxy, która może powodować konsekwencje w zależności od przypadku użycia.
Ostatnia kwestia sprawiła, że zastanawiałem się, w jaki sposób niektóre ramy radzą sobie z tym, czy głęboko kopiują obiekt? czy enkapsulują proxy wewnątrz oryginalnej instancji?
Więc może po prostu łatwiej (choć może nie tak elegancko) wymagać, aby kod klienta tworzył interfejs dla klasy.
Dlaczego chcesz to zrobić? –
Tak, robienie interfejsu w czasie wykonywania programu powoduje, że cel interfejsu jest niekompletny. –
@SteveB. Co jeśli, na przykład, chciałbym zawinąć pojo i mieć opakowanie wyrażające ten sam interfejs co pojo (który nie ma interfejsu podczas kompilacji)? –