Как достичь латентной типизации в java?
Как говорит нам википедия
Неявная типизация, латентная типизация или утиная типизация (англ. Duck typing) в ООП-языках — определение факта реализации определённого интерфейса объектом без явного указания или наследования этого интерфейса, а просто по реализации полного набора его методов.
Как можно сделать это в java не используя интерфейсы?
Ответы (1 шт):
Автор решения: Alex
→ Ссылка
Это можно сделать через java рефлексию. Пример кода:
class FirstClass {
public void doSomething() {
System.out.println("Doing useful work in the first class");
}
}
class SecondClass {
public void doSomething() {
System.out.println("Doing useful work in the second class");
}
}
public class Main {
public static void perform(Object obj) throws NoSuchMethodException,
InvocationTargetException,
IllegalAccessException {
Class<?> cl = obj.getClass();
Method method = cl.getMethod("doSomething");
method.invoke(obj);
}
public static void main(String[] args) {
SecondClass obj = new SecondClass();
FirstClass obj2 = new FirstClass();
try {
perform(obj);
perform(obj2);
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
e.printStackTrace();
}
}
}