2015-10-05 5 views
0

У меня есть дерево с узлами, которые называются по их координатам. Я просто сбился эти две отдельных координат в единую String [] координаты как такПередача массива фиксированной длины строк в сеттер?

class Node { 
     private String[] coordinates; 

     public Node(){ 
      coordinates = new String[2]; 
     } 

public setCoordinates(String[] coordinates){ 
    this.coordinates = coordinates; 
} 

я уверен, что решение должно быть простым. Предположим, я не хочу специального сеттера, который берет две строки и устанавливает их индивидуально, координаты [0] = X, координаты [1] = Y. Это довольно очевидно. Как передать массив строк в установщик фиксированной длины?

Я попытался

setCoordinates({"-44.55", "55.22"}); 

и

setCoordinates(["-44.55", "55.22"}); 

также попыталась прохождения новой строки [2] = {} и с [], но те не работают либо.

+0

Возможный дубликат [Любой способ объявить массив в строке?] (Http://stackoverflow.com/questions/1154008/any-way-to-declare-an-array-inline) – 0X0nosugar

ответ

3

Вам нужно будет написать setCoordinates(new String[] {"-44.55", "55.22"}). (Это достаточно плохо, что вы действительно должны делать это обычным способом с двумя аргументами.)

+0

Это было fast :) Назначение String [] меня испортило. Спасибо вам обоим. Отметьте как ответ, когда это позволит мне. edit: И я передаю аргументы. Я просто хотел прояснить этот путь. – mitbanip

2
setCoordinates({"-44.55", "55.22"}); 

вместо использования ниже

setCoordinates(new String[]{"-44.55", "55.22"}); 

Создать String массив и передать аргументы в фигурных скобках.

0

Вы должны попробовать

setCoordinates(new String[]{"-44.55", "55.22"}); 

Это решает проблему синтаксиса.

Причина: difference between these 2 ways of initializing an simple array

И если я вижу, внимательно, у вас есть messedup с длиной и инициализации части.

Вы создали массив длиной 2. Но позже вы переопределяете это с помощью метода set.

Снимая все беспорядок, вам не нужно беспокоиться о части вашего конструктора. Просто удалите его и используйте только setter, если у вас нет ограничения на 2 элемента.

+0

Прошу прощения, но ваша ссылка не уточняет, как я испортился. Инициализация массива как String [2] позволяет делать позиции 0 и 1, нет? – mitbanip

+0

Вы говорите, что переданный аргумент явно должен быть строкой [2]? – mitbanip

+0

@mitbanip Вы декалировали массив длиной 2 и позже, овертинируя его с помощью сеттера. –

Смежные вопросы