java - 如何访问 arrayList 内的类的实例
问题描述
我正在做一个 MOOC 并且应该返回一个与名称相关联的数字。号码名称组合保存在一个名为 Phonebook 的对象中,该对象是一个 ArrayList。arrayList 包含我创建的类 Person 的信息。我需要对电话簿对象执行 getNumber(),但我不能,因为 getNumber() 仅适用于 Person 类型的对象。
package problem94_phonebook;
import java.util.ArrayList;
public class Phonebook {
private ArrayList<Person> phonebook;
public Phonebook(){
this.phonebook = new ArrayList<Person>();
}
public String searchNumber(String name){
if (this.phonebook.contains(name)){
return this.phonebook.Person.getNumber(); // here is the problem
}
}
}
package problem94_phonebook;
import java.util.ArrayList;
public class Person {
private String Name;
private String Numb;
private ArrayList<String> Phonebook;
public Person(String name, String numb){
this.Name = name;
this.Numb = numb;
this.Phonebook = new ArrayList<String>();
}
public String getName() {
return Name;
}
public String getNumber() {
return Numb;
}
public String toString(){
return this.Name +" " +"nummber: " + this.Numb;
}
public void changeNumber(String newNumber){
this.Numb = newNumber;
}
public void add(String name, String number){
this.Phonebook.add(name);
this.Phonebook.add(number);
}
public void printAll(){
for(String i : this.Phonebook){
System.out.println(i);
}
}
}
解决方案
你可以试试这个
for (Person person : phonebook)
{
if(person.getName().equals(name)){
return person.getNumber();
}
}
要使用它,您需要将返回类型更改String searchNumber(String name)
String
为ArrayList<String>
推荐阅读
- python - 收集期间的 Pytest 错误会中断程序运行
- fragment-shader - 在 WebGL2 的着色器中读取模板纹理
- google-chrome - Unity WebGL如何让它在后台正常运行
- c - 计算公式的结果
- python - SQLAlchemy 1.3 中的 Oracle 自动增量
- php - 简码 Wordpress 响应式
- postgresql - 具有在初始插入后从未引用的不可变数据的数据库设计
- pointers - 为什么这不适用于转置矩阵
- ms-office - 如何使用 Office-ui-fabric 品牌图标
- java - 即使我已经设置了它的值,变量也将值显示为 null