Как вы получаете float [] из ArrayList в Java - PullRequest
0 голосов
/ 12 июля 2010

Я получил массив с плавающей запятой внутри ArrayList.arraylist содержит логическое значение и вышеупомянутый массив float.мой курсный код, чтобы получить его (который не работает)

(float)((Float)((Number)(DXY.get(0));

Я бы предпочел не менять вещи внутри, но если это абсолютно необходимо, я мог бы передать логическое значение как 1 в простом массиве с плавающей точкой.

Передается ArrayListиз метода в другом классе, тип возвращаемого значения которого объявлен как ArrayList.

Заранее спасибо.

Это сообщение было опубликовано с временной учетной записи.

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

массив содержит логическое значение и вышеупомянутый массив с плавающей точкой

Я думаю, вы действительно действительно хотите переосмыслить это.Вы просите неприятностей.Даже без генериков создание гетерогенных коллекций было плохой идеей.В коллекции должны храниться только подобные типы (желательно все то же самое, но родитель / потомок тоже работает).

По существу, если вы не можете объявить свой ArrayList как-то вроде:

List<Foo> list;

list = new ArrayList<Foo>();

, тогда выделают вашу жизнь намного сложнее, чем вам нужно.

То, что вам действительно нужно, это что-то вроде:

public class Bar
{
    private final boolean bool;
    private final float[] array;

    ...
}

и метод должен возвращать это вместо ArrayList.

Однажды я работал в компании, которая делала что-то вроде: у всех методов было Map<String, Object>, где String - имя параметра, а Object - значение.Они сделали это, чтобы сделать методы более «динамическими» (например, им не нужно было что-то исправлять, если они изменили # или тип параметров).К счастью, я уже покинул компанию и только сообщил об этом от друга ... если бы не я, я бы ушел на месте.

2 голосов
/ 12 июля 2010

Массив с плавающей точкой - это объект, поэтому вы можете просто привести его к этому:

float[] floatArray = (float[])DXY.get(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...