Mam starszą klasę C1, implementującą interfejs I, która może generować pewne wyjątki.Tworzenie bezpiecznej dla wyjątków osłony klasy
Chcę utworzyć klasę C2, również implementującą interfejs I, która jest oparta na instancji klasy C1, ale przechwytuje wszystkie wyjątki i robi coś użytecznego na ich temat.
Obecnie moja realizacja wygląda następująco:
class C2 implements I {
C1 base;
@Override void func1() {
try {
base.func1();
} catch (Exception e) {
doSomething(e);
}
}
@Override void func2() {
try {
base.func2();
} catch (Exception e) {
doSomething(e);
}
}
...
}
(Uwaga: Mógłbym również rozszerzyć C1 C2 To nie ma znaczenia dla bieżącego pytania.).
Interfejs zawiera wiele funkcji, więc muszę napisać tę samą próbę ... blok catch ponownie.
Czy istnieje sposób na zmniejszenie ilości powielania kodu?
metody chcesz „wrap” są wyłącznie z interfejsu czy istnieją dodatkowe te? Ponieważ nie jest to jasne, ponieważ nadpisujesz niektóre widoczne metody pakietu w swojej próbce. –
Nie, jeśli chcesz mieć zwykłe źródło java dla C2. –
@Java Mentor Jaką to robi różnicę? –