Java - 数学函数的派生泛型类

标签 java generics

这是一个很难尝试和搜索的问题,因为我没有看到其他类似的具体问题,所以如果结果是我没有找到重复的线程,我深表歉意。这是一个与类作业无关的编程问题,我在完全按照规范实现时遇到了问题。

如果我想创建一个

Function<T>

通用抽象类,其唯一的抽象方法是

Apply<T>(T input1, input2)

然后扩展到其他派生函数类,例如 AddTwoNumbers 类,Apply 将返回 T 类型的 input1 和 input2 的总和(实际上应该是 Integer 或 Double),我该如何实现?

我第一次遇到问题

public abstract class Function<T1 extends Number> {
    public abstract T1 apply(T1 input1, T1 input2);
}
public class AddTwoNumbers<T1 extends Number> extends Function<T1> {
    public T1 apply(T1 input1, T1 input2) {
        return input1.intValue() + input2.intValue(); //Error, needs to return type T1, not int or even Integer()
    }
}

要求 Function 是允许类型的泛型,但实际上,可以预期 AddTwoNumbers 将专门使用 Integers 来解决此问题。有没有办法可以在 AddTwoNumbers 中编写 apply() 方法,这样

  1. AddTwoNumbers 完全实现了从 Function 继承的抽象方法
  2. 如何将两个 T1 值相加并正确返回 T1 值?

事实上,我无法安全地将 T1 转换为整数,并且还保留对 Apply 的覆盖,这是麻烦的部分。

这是我正在研究的问题的概括。

最佳答案

public class AddTwoIntegers extends Function< Integer > {
...
}

关于Java - 数学函数的派生泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19172187/

相关文章:

通用异常类型的Java类型推断

具有不同返回类型的 C# 通用接口(interface)

java - super 在方法声明中的用法

java - 使用 LDAP 对使用 spring security 的 ADAM 进行身份验证

java - Utils 文件是好的做法吗?

java - 无法使用 HttpURLConnection 连接到 https

typescript - 如何在 TypeScript 中显式定义泛型返回类的返回类型?

Java 从类构造通用实例

Java计算队列中的唯一值

java - 如何修改不同窗体上的控件?