按字符串使用对象?

时间:2016-07-03 00:54:54

标签: java access

如果我只获得字符串,是否可以使用对象?我有一个来自班级'学生'的对象'约翰'。在班级'学生'是一个ArrayList'朋友'。我想通过使用String(对象的名称)来访问Object'John'。 (示例中的第2行)

 public void addFriend(Student student, String friend) throws IOException{
        student.friends.add(friend);
        System.out.println("Friend: " + friend + " added to List of " + student);
    }

我希望你明白我的意思(对不起我糟糕的英语:/)

3 个答案:

答案 0 :(得分:1)

您可以使用地图解决此问题。

Map<String, Student> friends = new HashMap<String, Student>();
friends.put("John", objectOfJohn);
Student target = friends.get("John");

答案 1 :(得分:0)

如果我理解正确,您希望使用变量学生打印出学生的姓名。如果是这种情况,您可能希望覆盖Student类中返回该学生姓名的toString()方法。例如:

public class Student {
    private String firstName;
    private String lastName;

    // ... Other methods

    // here is the toString
    @Override
    public String toString() {
        return firstName + " " + lastName;
    }
}

然后你可以做这样的事情打印出学生姓名:

System.out.println("Friend: " + friend + " added to List of " + student.toString());

答案 2 :(得分:0)

您有一个 ///////////////////////// function doGet(e) { var valeur = new Array(); valeur[0]=e.parameter.Yerk;//action valeur[1]=e.parameter.PSO; // Pso valeur[2]=e.parameter.Clef; // clé if (valeur[2] != null ){ var today = new Date(); valeur[3] = today.toISOString().substr(0, 10); //date jour Logger.log("v1 de vlé=> "+valeur[2]); } else { valeur[3] =''; Logger.log("v2 de clé=> "+valeur[2]);} valeur[4]="Ici apparaitra la séance faite ou à refaire si vous cliquez sur le bouton ⏩ Planning entrainement ⏪"; valeur[5]="Ici apparaitra la séance suivante si vous cliquez sur le bouton ⏩ Planning entrainement ⏪"; valeur[6]=0; Logger.log(e.parameter); Logger.log(e.parameters); var ecran = HtmlService.createTemplateFromFile('page'); // Si pas de parametre (PSO) on charge tout le monde // le test se fait aussi dans la page HTML if (valeur[0]!='ongigo') {valeur=valeur.concat(cherche_athlete());} else { //Logger.log("Valeur 1,3,2 => "+valeur[1]+", "+valeur[3]+", "+valeur[2]); var planif_init=historique([valeur[1],valeur[2],valeur[3]]) ; //pso //clé //date // On le met valeur qui détermine le placement avec la date = new date valeur[6]=planif_init[0][2]; if (valeur[6]!=0) { valeur[4]=planif_init[0][0]; valeur[5]=planif_init[0][1]; } else{ for (var i = 1 ; i < 11 ; i++) { for (var j = 0 ; j<3 ; j++) {planif_init[i][j]=i;} } } } Logger.log(id_Les_jours_Billat+" =>Valeur : "+ valeur +" :!!! Valeur<= "+ ZOZO); ecran.data = valeur; // = cherche dans const id_Les_jours_Billat ecran.planif=planif_init; return ecran.evaluate().setFaviconUrl('https://i.postimg.cc/8z0thNcT/Pingouin-burned-removebg-preview.png'); // return HtmlService.createTemplateFromFile("page").evaluate(); } // Pour inclure les fichier JS et CSS dans l'HTML function include(fichier) { return HtmlService.createHtmlOutputFromFile(fichier).getContent(); } //Fin include /////////////////////////////////////////////////////////////////////////////// Fin page HTML 类,并且在某些时候创建了该类的某些对象。

Student

您将所有这些对象存储在Student john = new Student(); Student mike= new Student(); Student mary = new Student(); allstudents

Arraylist

因此,如果您想从此列表中找到ArrayList<Student > allStudents= new ArrayList<>(); allStudents.add(john); allStudents.add(mike); allStudents.add(mary); ,可以这样做:

选项A

如果案例的名称是唯一的并且作为对象中的一个属性存在,则可以迭代john并找到它:

Arraylist

选项B

添加Student getStudentByName = new Student(); for(Student student : allStudents){ if(student.getName().equals("john")){ //If name is unique getStudentByName = student; } } 中的所有对象

HashMap

然后通过以下方法获取所需的对象

Map<String, Student> allStudents= new HashMap<>();
allStudents.put("john", john);
allStudents.put("mike", mike);
allStudents.put("mary", mary);

请注意,如果再次添加:

Student target = friends.get("john");

allStudents.put("john", newStudentObject); 将保留最后一个条目。