Есть структура
public interface CacheService {
void getId();
}
public class AbstractDaoService implements CacheService {
public void getId(){}
}
public interface UserDaoService {}
public class UserDaoServiceImpl extends AbstractDaoService implements UserDaoService {}
public class MyOtherClass {}
public class MyClass extends MyOtherClass {
UserDaoService userService=new UserDaoService();
myMethod(){
userService.super.getId(); // Можно ли как-то это реализовать?
}
У меня собственно вопрос, можно ли как-то это реализовать кроме как добавление вот так?
public class UserDaoServiceImpl extends AbstractDaoService implements UserDaoService {
public myOtherMethod(){
super.getId(){}
}
}
public class MyClass extends MyOtherClass {
UserDaoService userService=new UserDaoService();
myMethod(){
userService.myOtherMethod();
}
}
Почему бы не имплеметировать CacheService
сразу в UserDaoServiceImpl, потому что другие классы тоже, в будущем, должны будут использовать метод из CacheService
. И в каждый класс добавлять интерфейс, мне кажется, не красиво )
Можно использовать Reflection Api
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
interface CacheService {
void getId();
}
class AbstractDaoService implements CacheService {
@Override
public void getId() {
System.out.println("Привет: AbstractDaoService::getId()");
}
}
class UserDaoServiceImpl extends AbstractDaoService {
}
public class TestDemo {
public static void main(String[] args) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
UserDaoServiceImpl service = new UserDaoServiceImpl();
Class<UserDaoServiceImpl> sClass = UserDaoServiceImpl.class;
Method method = sClass.getSuperclass().getMethod("getId");
method.invoke(service);
}
}
output
Привет: AbstractDaoService::getId()
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Чтобы создать константу в Java, нужно пометить переменную сразу двумя модификаторами: static и finalПрочитал это в книге, а если просто переменную...
После того как поменял extends с appCompatActivity на listActivity, метод setSupportActionBar стал светиться краснымЧто делать? Может быть что нибудь поменять в коде?...