У меня есть интерфейс для реализации структуры данных стека:
public interface Stack<T> {
void push(T element);
//other methods
}
И одна или несколько реализаций, где она реализована.
И я хочу написать для этого тестер, где любой из примеровэтого класса могут быть проверены.Например:
class StackImpl<T> implement Stack<T>{
//...
}
Для теста вызова я хочу написать это:
Tester.<Integer>test(new StackImpl<Integer>());
И в тестере это:
public static <T> void test(Object any) {
if (any instanceof Stack) {
testQueue((Stack<T>) any);
}
}
private static<T> void testStack(Stack<T> stack) {
new TestStack<>(stack).invoke();
}
И тестовый стек:
public class TestStack<T> implements Test {
private Stack<T> stack;
TestStack(Stack<T> stack) {
this.stack = stack;
}
@Override
public void invoke() {
//and here need help!
}
}
И в методе invoke()
я хочу получить оригинальный универсальный тип, в данном случае это Integer.
Как получить необходимое значение для теста навесного оборудования?