Мне не удалось выбрать правильные слова для вопроса.
У меня есть класс и метод фабрики.
class MyObject<Some, Other> {
static <T extends MyObject<U, V>, U, V> T of(
Class<? extends T> clazz, U some, V other) {
// irrelevant
}
private Some some;
private Other other;
}
Теперь я хочу добавить еще два метода фабрики, каждый из которыхтолько занимает U
или V
.
Это будет выглядеть так.Это означает, что пропущенные V
или U
остаются неустановленными (null
).
static <T extends MyObject<U, ?>, U> T ofSome(
Class<? extends T> clazz, U some) {
// TODO invoke of(clazz, some, @@?);
}
static <T extends MyObject<?, V>, V> T ofOther(
Class<? extends T> clazz, V other) {
// TODO invoke of(clazz, @@?, other);
}
Я пробовал это, но не удалось.
static <T extends MyObject<U, ?>, U> T ofSome(
final Class<? extends T> clazz, final U some) {
return of(clazz, some, null);
}
Компилятор жалуется со следующим сообщением.
Не найдено подходящего метода для of (java.lang.Class, U, )
Как правильно это сделать?