基本上我想创建一个具有如下签名的方法:
public <T> T getShellTab(Class<T extends ShellTab> shellTabClass)
Run Code Online (Sandbox Code Playgroud)
但这不是有效的Java.
我希望能够传递一个类的子类,ShellTab并返回该类的实例.
public <T> T getShellTab(Class<T> shellTabClass)
Run Code Online (Sandbox Code Playgroud)
工作正常,但我想强迫shellTabClass成为一个子类ShellTab.
关于如何解决这个问题的任何想法?
谢谢.
Mic*_*ers 12
将约束放在初始泛型参数中,如下所示:
public <T extends ShellTab> T getShellTab(Class<T> shellTabClass)
Run Code Online (Sandbox Code Playgroud)
请注意,您可以对方法参数的泛型类型参数设置约束(例如,Tom Hawtin - tackline建议制作shellTabClass一个Class<? extends T>,但我不认为它在这种情况下有所不同).
但是你不能约束已经声明的类型.
| 归档时间: |
|
| 查看次数: |
1280 次 |
| 最近记录: |