在Java中是否可以创建子类并对类型进行某种查找和替换?要将实例变量更改为Integer
而不是Double
?
我正在寻找一个包含整数的向量类。我的意思是一个真正的数学向量,而不是java.util.Vector
。
在org.apache.commons.math3
中有Vector2D
和ArrayRealVector
个类,但他们都只需要Double
作为坐标。
我希望能够以某种方式将它们子类化为使用Integer
s。我知道我可以继承它们扩展的抽象类,但这看起来像是一大堆代码重复数据删除,判断它们的实现有多长(source of Vector2d和source of ArrayRealVector)。
我知道在构建和获取值时我也可以将Integer
强制转换为Double
s,但这似乎有点混乱。
答案 0 :(得分:0)
一旦创建了基类,就无法执行此操作。
您可以做的是创建一个使用generics
的基类。这允许您声明一个类型T,使其中的所有内容都使用,然后在您的类中使用T,当您使用该类型时,您可以决定在其中使用哪种类型的T。
查看java.util.collections
包中的大量示例。