Различные типы переменных в одном и том же массиве?(Джава) - PullRequest
0 голосов
/ 27 июня 2011

Программа Я создаю программу, в которой метод использует A LOT различных массивов! Для меня довольно сложно отследить все их. Итак, почему бы не объединить их в многомерный массив? Моя проблема в том, как я могу объединить массив String[] с массивом Object[]?

Может ли кто-нибудь помочь мне с этим?

Ответы [ 5 ]

4 голосов
/ 27 июня 2011

Звучит так, как будто вы пропустили абстракцию, если все ваши массивы имеют одинаковую длину, вероятно, существует класс, который вы должны определить; структура данных типа записи, которая либо имеет все открытые поля (если ваши данные должны быть неизменяемыми, добавьте final ), либо JavaBean с геттерами и сеттерами. Множество массивов значений примитивов очень процедурно, Java - это объектно-ориентированный язык, поэтому используйте его в своем дизайне.

Добавить к комментарию @ styfle; если они не связаны, почему вы хотите это сделать? И если они связаны, почему вы не определяете классы?

3 голосов
/ 27 июня 2011

Если вы объявите массив определенного типа, все подтипы могут быть сохранены в массиве.Например,

  Object myArray[];

теперь может хранить любой объект, строки, даты, JButtons и т. Д. Однако это может быть опасно при извлечении элементов из массива.Вы должны убедиться, что вы правильно их интерпретируете.Компилятор не сможет предупредить вас, если вы сохраните там неправильный тип объекта.

Лучшим подходом может быть создание собственного объекта коллекции, который хранит все различные элементы способом, безопасным для типов..

0 голосов
/ 27 июня 2011

Вы можете использовать Object [] [], так как String являются объектами.

0 голосов
/ 27 июня 2011

Почему бы не использовать один Object и поместить в него все свои массивы.

0 голосов
/ 27 июня 2011

Один из вариантов - использовать ArrayList<Superclass[]>, где суперкласс - это некоторый класс, от которого наследуется все, что вы используете.Если такого класса нет, используйте Object.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...