通用类型扩展 Number、计算

2023-12-31

我用一种方法制作了数学运算的接口,计算,采用不同数量的参数

public interface MathOperation {
    public <T extends Number> T calculate(T... args);
}

这个类还有一个简单的实现,但不起作用:

private class Sum implements MathOperation {
    @Override
    public <T extends Number> T calculate(T... args) {
        return args[0] + args[1];
    }
}

问题是:

bad operand types for binary operator '+'
  first type:  T
  second type: T
  where T is a type-variable:
    T extends Number declared in method <T>calculate(T...)

我想要实现的是一个简单的类,例如两个 Double 并返回 Double 。

有可能实现这一目标吗?


+不能应用于以下类型extend Number. new Integer(5) + new Integer(5)由于自动装箱而起作用。您必须查看 args 的运行时类型并执行相应的操作。

大致如下:

private class Sum implements MathOperation {
    @Override
    public <T extends Number> T calculate(Class<T> clazz, T... args) {
         if (clazz.equals(Integer.class))
         {
             return Integer.class.cast(args[0]) + Integer.class.cast(args[1]);
         } else (....) 
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通用类型扩展 Number、计算 的相关文章

随机推荐

  • HTTP 状态 500 - 过滤器执行引发异常 - doFilter 和 invokeDelegate 重复

    我正在使用 Spring MVC 4 2 5 和 Spring Security 4 1 3 来开发 Web 应用程序 当我尝试将后者合并到我的 mvc 项目中时 我开始遇到问题 目前 经过多次尝试 我在 localhost 8080 Be
  • Google 搜索 API 网站限制

    根据 Google 自定义搜索 API 文档 http code google com apis customsearch docs start html sites http code google com apis customsear
  • Node.js 的编码错误

    我正在用node js 重写一个小的python 脚本 原来的脚本是这样工作的 coding utf 8 import urllib import httplib import json def rpc url args try post
  • boost::asio 干净地断开连接

    有时 boost asio 似乎在我想要之前断开连接 即在服务器正确处理断开连接之前 我不确定这是怎么可能的 因为客户端似乎认为它完全发送了消息 但是当服务器发出错误时 它甚至没有读取消息头 在测试期间 这种情况可能只发生五分之一 服务器收
  • C++ 如何生成随机路径

    我正在尝试编写一个函数 可以为给定的二维点数组 x y 生成随机路径 现在 该路径有一些我希望它满足的要求才能使其有效 路径cannot 是从点开始的一条直线A to B 自行返回但可以倒退 如下所示 平行 沿着自身运行 我还想确保路径从左
  • android尺寸之间的区别:pt和dp

    文档称 160 dp 与密度无关 等于 1 英寸 72 pt 也是 1 英寸 所以我不明白为什么 android 定义 dp 测量 而它似乎与点一样工作 有人能解释一下吗 如果可以使用 pt 为什么还要使用 dp Android 文档曾经错
  • javax.faces.component.StateHolderSaver 可能存在内存泄漏

    我们最近将一个应用程序从 Jboss EAP 6 1 迁移到 7 1 我们的应用程序随机开始进入完整的 GC 死亡螺旋 平均时间 12 秒停止世界 并在生产环境中耗尽内存 我们从 Jboss EAP 6 1 迁移到 7 1 Java从7到8
  • SQLite“插入或替换为”不起作用

    我必须在 sqlite 中编写一个查询来更新记录 如果存在 或插入它 如果记录尚不存在 我看过的语法INSERT OR REPLACE INTO from here https stackoverflow com questions 225
  • 隐藏散点图中绘制线上方的所有点

    绘制 2 个星系等效宽度比列表 我将它们相互绘制 然后我想消除该线上方的所有点y 0 61 x 0 05 1 3这样图中就只剩下下面的点了 这是我到目前为止所拥有的 我已经查看了堆栈溢出 但不知道如何实现这一点 注 我只想要上面的几点y n
  • 如何动态添加类方法?

    使用 Objective C Runtime 如何添加方法 layerClass给私人UIGroupTableViewCellBackground类 不是它的超类 UIView 注意 这仅用于测试 看看如何UITableViewStyleG
  • python:从字典中创建直方图

    我是 python 新手 正在学习如何以正确的方式做事 我有字典列表d 每个字典代表用户 包含user id 年龄等信息 这个列表d可以包含代表同一用户的多个字典 但信息略有不同 这对我的目的来说并不重要 我想创建直方图来显示有多少用户d与
  • Java 中是否有类似于 C# 匿名类型的功能?

    我想知道 Java 中是否存在类似于 C 匿名类型的类似功能 var a new Count 5 Message A string 或者这个概念违背了Java范式 EDIT 我想使用Hashable Java 中的情况有些类似 不 没有同等
  • LinkedIn iOS SDK 捆绑包后缀

    因此 我的 LinkedIn 应用帐户上有多个捆绑包标识符 对于其中每一个 我还创建了一个 URL 后缀方案 我设置 URL 类型的方式就像li appID suffix where appID 是 LinkedIn 上提供的应用程序 ID
  • 强制 Linq 不延迟执行

    其实这个问题和这篇文章是同一个问题 如何确保 LINQ 查询在 DAL 中调用时执行 而不是以延迟方式执行 https stackoverflow com q 1013201 75642 但既然他没有解释why他想要它 这个问题似乎被忽略了
  • 在R中使用grepl来匹配字符串

    我有一个帧数据 testData 如下 id content 1 I came from China 2 I came from America 3 I came from Canada 4 I came from Japan 5 I ca
  • 这段代码是否颠覆了 C++ 类型系统?

    我明白有一个constC 中的方法意味着对象通过该方法是只读的 但否则它仍然可能会发生变化 然而 这段代码显然通过const参考 即通过const方法 这段代码在 C 中合法吗 如果是这样 是否违反了const 类型系统的性质 为什么 为什
  • Web 服务显示 Jquery 令牌输入结果的正确响应应该是什么?

    我正在使用 Jquery 令牌输入插件 我尝试从数据库而不是本地数据中获取数据 我的 Web 服务返回的 json 结果封装在 xml 中
  • 为什么类定义的元类关键字参数接受可调用对象?

    背景 蟒蛇3文档 https docs python org 3 6 reference datamodel html determining the appropriate metaclass清楚地描述了类的元类是如何确定的 如果没有给出
  • 在控制器构造函数中使用 HttpContext

    我试图在控制器的构造函数中设置一个属性 如下所示 public ApplicationUserManager UserManager get private set public AccountController UserManager
  • 通用类型扩展 Number、计算

    我用一种方法制作了数学运算的接口 计算 采用不同数量的参数 public interface MathOperation public