Поскольку T
не имеет ограничений по типу, компилятор не может знать, будет ли этот параметр заменен классом, который имеет метод someMethod
.
Добавить тип связанный:
pubic <T extends HasSomeMethod> void someFunction(T object) {
object.someMethod();
}
Где HasSomeMethod
это интерфейс, который содержит метод someMethod
, и два класса, которые имеют someMethod
реализовать этот интерфейс. (Он также будет работать, если HasSomeMethod
супер-класс ваших двух классов, и он содержит метод someMethod
(или реферата или нет)
EDIT:.
Пример оберточной PreparedStatement:
public class MyStatement implements HasSomeMethod
{
PreparedStatement stmt;
public MyStatement (PreparedStatement stmt) {
this.stmt = stmt;
}
public void someMethod()
{
stmt.someMethod();
}
}
Теперь, если у вас есть PreparedStatement
экземпляр, вы можете написать:
PreparedStatement ps = ...
MyStatement my = new MyStatement(ps);
и передать my
на ваш someFunction
метод.
В чем вопрос; какая у вас проблема? –
Мне нужно вызвать функцию двух классов в зависимости от введенного значения. Один класс встроен, а другой определен пользователем один. –