我不知道如何给它一个更好的标题,因为我真的不知道在Java中这种模式是什么。
现在,我有一个带有此签名的方法:
public Directory getDirectory(Class<? extends Directory> type) { ... }
您这样称呼它:
MyDirectory directory = (MyDirectory)getDirectory(MyDirectory.class);
对类型的约束确保
MyDirectory
必须从Directory
派生。我真正想做的是避免强制转换并减少所需的代码量。在C#中,您可以说:
MyDirectory directory = getDirectory<MyDirectory>();
有没有办法做到这一点或Java中的类似方法?自1.4版以来,我还没有编码任何Java代码!
最佳答案
public <T extends Directory> T getDirectory(Class<T> type) { ... }
MyDirectory directory = getDirectory(MyDirectory.class);