Java中的通用方法

Dre*_*kes 0 java generics generic-method

我不知道如何给这个更好的标题,因为我不知道这个模式在Java中被称为什么.

现在我有一个带有此签名的方法:

public Directory getDirectory(Class<? extends Directory> type) { ... }
Run Code Online (Sandbox Code Playgroud)

你这样称呼它:

MyDirectory directory = (MyDirectory)getDirectory(MyDirectory.class);
Run Code Online (Sandbox Code Playgroud)

对类型的约束确保MyDirectory必须从中派生Directory.

我真正想要做的是避免强制转换并减少所需的代码量.在C#中你可以说:

MyDirectory directory = getDirectory<MyDirectory>();
Run Code Online (Sandbox Code Playgroud)

有没有办法在Java中做到这一点或类似的东西?我从1.4版开始就没有编写任何Java代码!

Col*_*inD 11

public <T extends Directory> T getDirectory(Class<T> type) { ... }

MyDirectory directory = getDirectory(MyDirectory.class);
Run Code Online (Sandbox Code Playgroud)