java - 如何将类级别泛型传递给方法
问题描述
我有一个接受泛型参数的类
class MyClass<D> {
public void myMethod() {
}
}
现在我有一个具有以下签名的外部 API 方法?
public static <T> T apiMethod(String str, java.lang.Class<T> classOfT) {
}
我想要类似下面的东西,但我得到了编译错误。
class MyClass<D> {
public void myMethod(String str) {
ApiClass.apiMethod(str,D);
}
}
知道如何实现这一目标吗?
解决方案
你不能那样做。您能做的最好的事情就是将责任交给调用者,让他们将类传递给构造函数。
class MyClass<D> {
private Class<D> clazz;
MyClass(Class<D> clazz) {
this.clazz = clazz;
}
public void myMethod() {
ApiClass.apiMethod(str, clazz);
}
}
推荐阅读
- mysql - 删除除最后 10 行之外的所有行?或者最大行数= 10?
- r - 找到每个日期的最大速度的有效方法
- php - 如何在 Wordpress 主题中编辑行内容包装器
- amazon-web-services - 对 Amazon Redshift 中的单个列使用多个替换条件
- api - 使用 vue.js 上传文件并使用 axios 进行 spring-boot
- autodesk-forge - DataManagement API 的实际配额和速率限制是多少
- laravel - 如何在fluentd中解析laravel日志
- ibm-doors - 批量新建布局DXL列+图片导出
- mysql - 三个 MySQL 表的 LEFT JOIN 和 NOT
- haskell - Haskell中翻转函数的定义