将固定长度的字符串数组传递给setter?

时间:2015-10-05 16:46:04

标签: java

我有一棵树,其节点由坐标命名。我只是将这两个单独的坐标聚合成一个String []坐标,如此

 class Node {
      private String[] coordinates;

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

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

我确定解决方案必须简单。假设我不想要一个特殊的setter,它接受两个字符串并单独设置它们,坐标[0] = X,坐标[1] = Y.这很明显。我怎样才能将一个字符串数组传递给固定长度的setter?

我试过

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

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

也试过传球       new String [2] = {} 和[],但那些也不起作用。

3 个答案:

答案 0 :(得分:3)

你必须写setCoordinates(new String[] {"-44.55", "55.22"})。 (这很糟糕,你应该用两个参数正常地做这个。)

答案 1 :(得分:2)

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

改为使用

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

创建String数组并用大括号传递参数。

答案 2 :(得分:0)

你应该试试

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

这可以解决您的语法问题。

原因:Wallach, et. al.

如果我仔细看,你可以使用你的长度和初始化部分进行测试。

您创建了一个长度为2的数组。但稍后您将使用set方法覆盖它。

删除所有混乱,你不必担心你的构造函数部分。如果您没有2个元素的限制,只需将其删除并仅使用setter。