如果我只获得字符串,是否可以使用对象?我有一个来自班级'学生'的对象'约翰'。在班级'学生'是一个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);
}
我希望你明白我的意思(对不起我糟糕的英语:/)
答案 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);
将保留最后一个条目。