Я хочу создать интерфейс, где я могу это сделать.Правильный способ создания универсального метода интерфейса?
public interface Getter {
T get(String location);
}
public class IntegerGetter {
Integer get(String location) {
Object x = foo(location);
if (!(x instanceOf Integer)) { throw Exception }
return (Integer) x;
}
}
Каков правильный способ организации дженериков, чтобы сделать эту работу? Один из вариантов, похоже, должен сделать T параметром типа самого интерфейса, например. Getter<T>
, IntegerGetter<Integer>
, но поскольку параметр используется только для одного метода, для него более разумным является параметр метода. Тем не менее, мне сообщили, что просто наличие параметра типа является типом возвращаемого метода опасным, например. <T> T get
.
Что такое 'foo' здесь? – flakes
", но поскольку параметр используется только для одного метода, для него более разумным является параметр метода." Нет, это не имеет смысла. Используйте 'Getter' и 'IntegerGetter реализует Getter '. –
bradimus
@bradimus пример, который я предоставил, был минимальным, но на самом деле я строю что-то, что имеет кучу других методов, не связанных с типом. В этом случае метод не будет использоваться 95% пользователей этого класса, но они все равно должны будут предоставить параметр типового типа. Должно было сделать это яснее. Вы все еще говорите, что это не имеет никакого смысла? –