java - 通用类 - 运算符问题

标签 java operator-keyword generics

我正在尝试用 Java 编写一个通用类。 阅读一些指南,我找到了如何声明它以及如何调用它的函数。

我的类是一个点,如果没有方法,它会是这样的:

class Pnt<type>{
  protected type x, y;
  protected int col;
}

现在,我正在尝试创建一个add 方法,但我做不到。

我尝试的是:

  void add(type x_, type y_){
    x += x_;
    y += y_;
  }

IDE 对我大喊 += 未定义 type 变量...

我知道在 Java 中不可能像在 C++ 中那样定义一个新的运算符,所以我要求另一种方法来添加两个 type 变量!

附言我将使用的所有类型都是 doublefloatintegers,这就是为什么我要尝试简单地上瘾.

最佳答案

当你说 class Pnt<type> , ti 表示 type是一个对象而不是像 int 这样的原始数据类型或 double .您可以执行 +=对数字原始数据类型的操作,如 int , float等等,而不是在一个物体上。事实上你不能执行 +=与任何通用对象的操作。

Integer 的对象, Float等支持 +=运算符,因为它们是包装类并且被拆箱为原始类型并在以后自动装箱。但是编译器无法确认 type将是 IntegerFloat .因此,它会产生编译时错误。

关于java - 通用类 - 运算符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16901502/

相关文章:

java - 在 javax.xml.bind 中创建一个通用集合

Javascript:变量名中的冒号运算符是什么?

c# - 通用约束排除

java - 使用不同的通用类型实现同一通用 Java 接口(interface)的多个实例?

java线程周期性地杀死一个进程

c# - 从WIN32应用程序使用的C#COM DLL调用Java代码?

c++ - 泛型类中的赋值运算符。 C++

c++ - C++中的字符串类赋值运算符重载

Java 方法从继承返回类型