如何用java中的元素返回名称?

问题描述:

在Java中的初学者,我寻找的方式来返回与我的函数“readPeople()”与我的ArrayList“this.list”关联的名称由于用户给出的ID。 这里是我的代码:如何用java中的元素返回名称?

public class PersonneC implements PersonneDB { 
    this.list = new ArrayList(); 

    People marie = new People(1, "Bower", "Marie"); 
    list.add(marie.toString()); 

     public PeopleWithId readPeople(int idPeople) { 
     PeopleWithId peoplename = null; 
     for(int i = 0; i < list.size(); i++) { 
      if(liste.get(i).equals(idPeople)) { 
       result = list.get(i); 
      } 
     } 
     return result.getPeopleName(); //ERROR INCOMPATIBLE TYPES 
     } 

通缉的结果返回:鲍尔

+0

我们可以让人们类和什么类型的结果,我认为是人民和检查list.add(marie.toString( )) – crammeur

+2

'getPeopleName()'可能返回一个'String',但是你的方法声明'PeopleWithId'为返回类型。它不兼容。将它改为'public String readPeople(int idPeople)' – davidxxx

+0

,除了编译器错误外,用'return list.get(i);'替换'result = list.get(i);'会更有效率'for'循环返回'null',或者甚至更好地使用'Optional '。 –

ArrayList<People> list = new ArrayList<>(); 

// add people to the list 
People marie = new People(1, "Bower", "Marie"); 
list.add(marie); 

// Search function 
    public String readPeople(int idPeople) { 
    People p = null; 
    for(int i = 0; i < list.size(); i++) { 
     // If equal than it is the result 
     if(list.get(i).id == idPeople) { 
      p = list.get(i); 
      break; 
     } 
    } 
    return p == null ? null : p.getName(); 
    } 
+0

谢谢你的回复。 但是,我被告知行“if(list.get(i).id == idPeople){”在索引“id”下面的错误“无法解析符号ID”,为什么? – Paul

+0

也许你的身份证是私密的或者是受保护的,或者你把你的身份命名为别的。 –

+0

你可以看到我将People对象添加到数组而不是String。 –

你得到不兼容类型的原因是因为在你的函数readPeople你告诉它返回PeopleWithId,在那里你正在返回一个字符串。

在public修饰符更改PeopleWithId之后,因为此对象不存在,请将其更改为String。它所做的是告诉你想要从中获得的对象的类型的函数,在这种情况下是一个String,因为你的名字已经被存储为一个字符串。

你的方法返回一个string,并且readPeople的返回类型为PeopleWithId