首页 > 解决方案 > 将数组数据从一个类发送到另一个 JAVA

问题描述

(我是初学者,所以这听起来很明显/缺少信息。)我有一个不同宠物的属性数组列表,包括它们的名字、通用名、动物价格、性别、购买日期和日期等属性卖。此信息是从一个单独的类生成的,该类将一组信息添加到现有动物列表的数组数组中。本质上,我想将数组发送到另一个类(称为 Pets),然后可以将其添加到数组数组中。我知道这听起来可能令人困惑,但这是我可以表达的唯一方式,如果需要,我可以澄清任何事情。任何帮助都会很棒,因为我真的被卡住了,无法弄清楚如何发送它。这是在数组中生成我的值的代码(使用文本框输入信息)。

public void actionPerformed(ActionEvent e) {
            ArrayList<String> NewanimalArr = new ArrayList<>();

            String givenName = txtGivenname.getText();
            String commonName = txtCommonName.getText();
            String priceOf = txtPrice_1.getText();
            String sexOf = txtSex.getText();
            String colourOf = txtMaincolour.getText();
            String dateOfA = txtArrivaldate.getText();
            String dateSold = txtSellingdate.getText();

            NewanimalArr.add(givenName);
            NewanimalArr.add(commonName);
            NewanimalArr.add(priceOf);
            NewanimalArr.add(sexOf);
            NewanimalArr.add(colourOf);
            NewanimalArr.add(dateOfA);
            NewanimalArr.add(dateSold);

            System.out.println(NewanimalArr);
        }
    });

这将打印生成的输入信息,例如:[alex, Dog, 40.50, Male, Brown, 14/04/2015, 14/12/2016] 我该如何将此数据发送到另一个班级

标签: javaarrays

解决方案


选项一Constructor Injection

public class Foo {
  List<String> actionPerformed(ActionEvent e) {
    List<String> newanimalArr = new ArrayList<>();
    .....
    return newanimalArr
}
...
public class Pets {
  private final List<String> array;
  public Pets(final List<String> array) {
    this.array = array;
  }
  void bar() {
    System.out.println(this.array);
  }
}
....
public static void main(String[] args) {
  Foo foo = new Foo();
  Pets pets = new Pets(foo.actionPerformed( new ActionEvent() ) );
  pets.bar();
}

选项二Getter-Setter Injection

public class Foo {
   private final List<String> newanimalArr;
   public Foo() {
     this.newanimalArr = new ArrayList<>();
   }  
   public void actionPerformed(ActionEvent e) {
    .....
   }
   public List<String> getNewanimalArr() {
      return new ArrayList<String>(newanimalArr);
   }
}
...
public class Pets {
  private List<String> array;
  public Pets() {
    this.array = Collections.<String>emptyList();
  }
  public void setArray(final List<String> array) {
    this.array = array;  
  }
  public void bar() {
    System.out.println(this.array);
  }
}
....
public static void main(String[] args) {
  Foo foo = new Foo();
  foo.actionPerformed( new ActionEvent() );
  Pets pets = new Pets();
  bar.setArray( foo.getNewanimalArr() );
  pets.bar();
}

另请参阅依赖注入模式


推荐阅读