Java 同一数组中的不同变量类型?(爪哇)

Java 同一数组中的不同变量类型?(爪哇),java,multidimensional-array,Java,Multidimensional Array,我正在创建一个程序,其中一个方法使用了大量不同数组!对我来说,跟踪所有的人是相当困难的。那么,为什么不将它们组合成一个多维数组呢?我的问题是如何将字符串[]数组与对象[]数组组合起来 有人能帮我吗?如果您声明了一个特定类型的数组,那么所有子类型都可以存储在该数组中。例如 Object myArray[]; 现在可以存储任何对象、字符串、日期、jbutton等。但是,从数组中检索项时,这可能会很危险。你必须确保你正确地解释它们。如果您在其中存储了错误类型的对象,编译器将无法警告您 更好的方法

我正在创建一个程序,其中一个方法使用了大量不同数组!对我来说,跟踪所有的人是相当困难的。那么,为什么不将它们组合成一个多维数组呢?我的问题是如何将
字符串[]
数组与
对象[]
数组组合起来


有人能帮我吗?

如果您声明了一个特定类型的数组,那么所有子类型都可以存储在该数组中。例如

  Object myArray[];
现在可以存储任何对象、字符串、日期、jbutton等。但是,从数组中检索项时,这可能会很危险。你必须确保你正确地解释它们。如果您在其中存储了错误类型的对象,编译器将无法警告您


更好的方法可能是创建您自己的集合对象,该对象以类型安全的方式存储所有不同的项。

一个选项是使用
ArrayList
,其中超类是您使用的所有内容都从中继承的某个类。如果没有此类类,则使用Object。

为什么不使用一个
对象
并将所有数组放入其中。

可以使用Object[][],因为字符串是对象

这听起来像是您缺少了一个抽象,如果您的所有数组长度相同,那么您可能应该定义一个类;一种记录类型的数据结构,它要么具有所有公共字段(如果您的数据应该是不可变的,则添加final),要么具有getter和setter的JavaBean。 大量的原语值数组是非常程序化的,Java是一种面向对象的语言,所以在您的设计中使用它


添加到@styfle的评论中;如果他们不相关,你为什么要这么做?如果它们是相关的,为什么不定义类呢?

可以指定吗?将二维阵列视为矩阵。你想要什么样的单元作为stings,什么样的单元作为Object?另外,如果你组合数组只是为了让它们更容易跟踪,我不确定这是一个很好的设计方案。你能更详细地解释一下吗?如果数组不相关,为什么要将它们组合成多维数组?你希望你的最终结果是什么?在我看来,使用多维数组会让阅读你的代码的人更加困惑。您可能最好将ArrayList与类型安全的泛型一起使用。我问这个问题的原因是因为我正在制作一个程序,用户可以在其中指定面板的位置、使用什么布局。。。我希望JPanel的所有数据都在一个数组中。这不是一个好主意。您需要来回转换,这可能会在运行时将ClassCastException引入到代码中。