通过外部方法调用将对象作为参数传递
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 的构造函数在方法中创建对象。
我有一个对象需要传递到 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 的构造函数在方法中创建对象。