在Java中改变类型的子类
问题描述:
在Java中可能创建子类并执行某种类型的查找和替换吗?要将实例变量更改为Integer
而不是Double
?在Java中改变类型的子类
我正在寻找一个保存整数的向量类。我的意思是一个真正的数学矢量,而不是一个java.util.Vector
。
在org.apache.commons.math3
有Vector2D
和ArrayRealVector
类,但他们都只需要Double
他们的坐标。
我希望能够以某种方式将它们继承为Integer
。我知道我可以继承它们扩展的抽象类,但是这看起来像是整整一代码重复数据删除,从它们实现的时间长度来看(source of Vector2d和source of ArrayRealVector)。
我知道我也可以在构造和获取数值时重新构造我的Integer
s到Double
s,但这又似乎有点混乱。
答
一旦基类已经创建完毕,就无法做到这一点。
你可以做的是创建一个使用generics
的基类。这允许你声明一个类型T,它们内部的所有东西都使用,然后你在类中使用T,并且当你使用这个类型时,你决定在它们内部使用什么类型的T。
请看java.util.collections
包的很多例子。