В следующем коде sniplet, я хочу указать, что:Как объявить параметры типа на уровне поля?
attachment
иhandler
разделяют общий тип ` «s тип
<A>
нужно только указать приnotify()
вызове- Вызов
notify()
является необязательный.
Я не хочу, чтобы заставить пользователей указать <A>
в классе время строительства, так как они никогда не могли бы в конечном итоге применение notify()
.
/**
* Builder pattern for some asynchronous operation.
*/
public class OperationBuilder
{
private A attachment = null;
private CompletionHandler<Integer, A> handler = null;
public <A> OperationBuilder notify(A attachment, CompletionHandler<Integer, A> handler)
{
this.attachment = attachment;
this.handler = handler;
return this;
}
public abstract build();
}
Возможно ли это под Java? Если нет, что бы вы порекомендовали мне?
UPDATE: не нужно указывать, что <A>
, связанные с attachment
и handler
должны быть одинаковыми <A>
связаны с notify()
. Все, что я пытаюсь указать, заключается в том, что attachment
и handler
должны использовать тот же тип <A>
.
Отличная идея! – Gili