Я пытаюсь достичь чего-то вроде этого:
public Attribute<?> getAttribute(Class<? extends Attribute> attributeClass){
for(Attribute attribute: attributes)
if(attributeClass.isInstance(attribute)) return attributeClass.cast(attribute);
return null;
}
где Attribute > явно неправильная часть.
Я хочу, чтобы возвращаемый тип этого метода был attributeClass , но я не могу понять, как это получить. Я должен отметить, что я знаю, что могу просто использовать Attribute в качестве возвращаемого типа, но этот метод в основном будет вызываться следующим образом:
AttributeType1 attributeType1 = getAttribute(AttributeType1.class);
... и я я пытаюсь избежать использования приведений каждый раз.
Помощь приветствуется.