Может ли кто-нибудь опубликовать Java-версию этого кода VB.NET?Завод дженериков в Java
Public Function FetchDoc(Of T As {New, IRepoDocument})(ByVal docId As String) As IRepoDocument Implements IDocRepository.FetchDoc
Dim repoDoc As New T
//some code to init repoDoc
Return repoDoc
End Function
Эта функция принимает и создать экземпляр любого класса, реализующего IRepoDocument
и имеет конструктор без аргументов.
Единственный способ я нашел:
public <T extends IRepoDocument> IRepoDocument FetchDoc(String idDoc, Class<T> clazz)
throws InstantiationException, IllegalAccessException
{
return clazz.newInstance();
}
Но я хочу, чтобы подавить Class<T> clazz
в качестве входного параметра.
Итак, вы хотите искать ClassLoader для любого класса, который реализует IRepoDocument и создает его экземпляр? –
Как вы хотите, чтобы он определил, какой класс вам действительно нужен? –
Невозможно сделать это без аргумента Class в Java. –