如何最好地存储原始值列表?

Fis*_*ian 2 java

在我的Java程序中,我想存储一个原始值列表.我可以这样做:

int x = 0;
double timestamp = 123.1d;
List<Object> data = new ArrayList<Object>();
data.add(x);
data.add(timestamp);
Run Code Online (Sandbox Code Playgroud)

但问题是我不确切知道我在列表中存储了哪种对象.那么还有更好的方法吗?

Lio*_*onC 7

嗯,Double,Integer,Long都属于Number-class.那么一个

List<Number>
Run Code Online (Sandbox Code Playgroud)

可能适合.它正是它的原因 - 一些List未指定的子类型.由于自动装箱,您应该只能添加原语,但更好的做法是使用Wrapper类.

Number-class提供方法来获得的不同表述Number,例如doubleValue()以.因此,您可以使用此方法转换List<Number>为(作为示例)中Double的所有值.有关更多参考,请参阅NumberOracle文档.

  • 是的..但是当你获得价值时,你将不得不贬低.如果数字(英特尔,多头,短裤,双打等)是任意的,你可能最终会将一个双重投入到一个空头中 (4认同)