通过外部方法调用将对象作为参数传递

Passing an object as an argument through an external method call

我有一个对象需要传递到 ArrayList 中。 ArrayList 包含在另一个 class.

中的外部方法中

我调试了程序,知道传递到 'Application' 构造函数的信息正在被放入 'app' 对象。我的问题是将它从此处移至 'GuestsAttending' 方法。

如有任何帮助,我们将不胜感激。

预订屏幕方法:

public void saveBookingInfo(View view) {
    GuestsAttending sendApplication = new GuestsAttending();

    EditText applicantNameText = (EditText) findViewById(R.id.applicantNameTextField);
    EditText itemToBurnText = (EditText) findViewById(R.id.itemToBurnTextField);

    String appName = applicantNameText.getText().toString();
    String appItemToBurn = itemToBurnText.getText().toString();

    if (appItemToBurn.isEmpty() || appName.isEmpty()) {
        Toast.makeText(BookingScreen.this, "Please fill in all fields.", Toast.LENGTH_SHORT).show();
    }
    else {
        Application app = new Application(appItemToBurn, appName);
        sendApplication.getGuestsAttending(app);

        this.finish();
    }
}

来宾出席方式:

public void getGuestsAttending(Application app){
    peopleAttending.add(app);
}

申请Class:

public class Application {

    private String name;
    private String item;

    public Application(String applicantName, String applicantItem) {
        name = applicantName;
        item = applicantItem;
    }
}

为清楚起见,将 "getGuestAttending" 更改为 "addGuestAttending"。如果 "peopleAttending" 是一个数组,您的方法将不起作用。将 "peopleAttending" 更改为 List 或 Set,然后它将起作用。如果 "peopleAttending" 需要是一个数组,则不能向其中添加项目,除非您声明它足够大以容纳所有客人。然后你必须跟踪客人的数量,这样你就知道在哪里插入新客人。换句话说,不要使用数组,使用列表:

List attendingGuests = new LinkedList();

我找到了不同的解决方案。我没有在另一个 class 中创建对象并将其作为参数传递给外部方法调用,而是在外部方法中创建了对象,并将几个字符串传递给该方法,然后将其传递给另一个 classes 的构造函数在方法中创建对象。