java - 如何绕过java泛型类型检查

标签 java generics

我有一个这样的界面:

公共(public) T 评估(浮点分数,T startValue,T endValue);

其他代码会将每个 T 类型视为 Object,最后我将得到返回值,它是一个 Object类也。

我想要的是将 startValueendValue 作为整数传递,但返回一个完全不同的实例(不是 Integer)。我将强制将返回值转换为我假设的值。

我所做的是将 T 替换为对象,如下所示:

公共(public)对象评估(浮点分数,对象起始值,对象结束值)

但是失败了,我想接口(interface)是否像那样定义? extends T 可以工作,但事实并非如此。 (我说得对吗?)

那么有什么方法可以绕过泛型类型检查吗?

最佳答案

假设您的接口(interface)有一个 T 泛型参数,请添加第二种类型,例如 R:

interface MyInterface<T,R> {
    public R evaluate(float fraction, T startValue, T endValue);
}

关于java - 如何绕过java泛型类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46403015/

相关文章:

java - ActivityCompat.requestPermissions 未显示对话框

java - 受密码保护的 PDF Jaspersoft

c# - C# 中开放泛型类型继承中的附加类型

java - 在匿名类实例中设置的函数参数泛型

java - 有没有办法获取java方法中声明的所有变量的列表?

java - 静态类型和编写简单的矩阵库

angular - 将复杂对象转换为查询字符串

c# - 编译器无法转换受约束的泛型类型

java - Stream().map() 结果作为 Collectors.toMap() 值

java - jooq 返回具有错误值的查询