如果我不知道名字,如何获取一个对象的名称来调用类方法?

时间:2017-05-02 16:14:13

标签: java

我有一个名为AttendanceSystem的课程:

LinkedList<LinkedList<String>> student = new LinkedList<LinkedList<String>>();

public AttendanceSystem(String s){
    student.add(new LinkedList<String>());
    student.get(student.size()-1).add(s);
}

public void setEmail(String d){
     student.get(student.size()-1).add(d);
}

在我的主要内容中我有这个:

System.out.println("Please enter your ID.");
String s = keyboard.nextLine();      
new AttendanceSystem(s);

System.out.println("Please enter your Email.");
String d = keyboard.nextLine();  

我想在对象中添加更多元素,但由于我使用了new AttendanceSystem(s),因此我不知道我创建的对象的名称,所以我不能简单地执行objectname.setEmail(s)。如何调用方法来处理该对象?或者有更好的方法吗?

我正在使用扫描仪,因此我可以自动添加新对象,直到我告诉它停止。

更新:

我的主要现在:

  LinkedList<AttendanceSystem> list = new LinkedList<AttendanceSystem>();

System.out.println("Please enter your ID.");
String s = keyboard.nextLine();      
list.add(new AttendanceSystem(s));

System.out.println("Please enter your Email.");
String d = keyboard.nextLine();    
list.get(list.size()-1).setEmail(d);

我将所有对象存储在链接列表中,因此我可以执行此操作list.get(list.size()-1).setEmail(d);

1 个答案:

答案 0 :(得分:2)

简单地:

AttendanceSystem identiferName = new AttendanceSystem(s);

然后使用setEmail设置该对象的相关数据。

修改

您可能想要创建一个addAttendee方法,该方法将IDEmail转换为LinkedList类内的AttendanceSystem

public void addAttendee(String id, String email){
       LinkedList<String> myList = new LinkedList<>();
       myList.add(id);
       myList.add(email);
       this.student.add(myList);
}

注意 - 在这种情况下,你应该摆脱构造函数参数&amp;不要用它来添加任何ID或电子邮件。

考虑到你做了改变并考虑到你不想存储对新对象的引用,你可以这样称呼它:

new AttendanceSystem().addAttendee(id,email);