gpt4 book ai didi

java - 为什么我无法访问存储在 ArrayList 元素中的对象的属性?

转载 作者:行者123 更新时间:2023-12-02 13:40:41 25 4
gpt4 key购买 nike

我有两个包,让它们命名为包 1 和包 2。A 类和 B 类位于 package1 中。 A 类包含一个名为 PTable 的 ArrayList。 B 类包含一个名为 query() 的函数,该函数根据特定条件过滤 A 类中的 PTable,并返回一个名为 result 的 ArrayList,其中包含 PTable 中满足该条件的所有元素。

我现在有包含 C 类的 package2。C 类从包 1 导入 B 类; C类是HttpServlet的子类。我在类 C 中创建一个类 B 的对象并对其进行初始化。

然后,我调用函数 query() 并将其分配给名为 results 的变量。当我尝试获取某个索引处的元素的属性时,我看不到存储在 ArrayList PTable 中的原始对象的属性。[这就是当我尝试访问对象的属性时出现的情况。我的目标是看到第二张图片][1]

最佳答案

很高兴提出问题,但首先花一些时间学习 Java。阅读一本书或在线,您将很快学会如何选角。还有关于类、 super 类等

将对象存储在 Element 类型的变量中(结果数组列表)。

将对象转换回它所属的类型,然后您将看到变量。

代码设计说明:在同一个数组列表中存储不同类型的类是合法且可能的,但容易出现错误。尽量避免它。如果更改将变量存储到列表中的顺序,则还需要更改所有访问代码。总之学习愉快。

有免费的在线Java教程学习它们->https://www.google.co.in/search?q=java+tutorial+beginner

示例类,在 main 方法中尝试获取位置 1 处的对象并将其转换为 Person :

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

class Person {
private String name;
private int age;

public Person() {

}

public Person(String name, int age) {
super();
this.age = age;
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

class Car {

private String manufacturer;
private String model;
private double price;
private int yearOfMfr;
private Date dateBought;
private String licenceNumber;

public Car() {
super();

}

public Car(String manufacturer, String model, double price, int yearOfMfr, Date dateBought, String licenceNumber) {
super();
this.manufacturer = manufacturer;
this.model = model;
this.price = price;
this.yearOfMfr = yearOfMfr;
this.dateBought = dateBought;
this.licenceNumber = licenceNumber;
}

public String getManufacturer() {
return manufacturer;
}

public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}

public String getModel() {
return model;
}

public void setModel(String model) {
this.model = model;
}

public double getPrice() {
return price;
}

public void setPrice(double price) {
this.price = price;
}

public int getYearOfMfr() {
return yearOfMfr;
}

public void setYearOfMfr(int yearOfMfr) {
this.yearOfMfr = yearOfMfr;
}

public Date getDateBought() {
return dateBought;
}

public void setDateBought(Date dateBought) {
this.dateBought = dateBought;
}

public String getLicenceNumber() {
return licenceNumber;
}

public void setLicenceNumber(String licenceNumber) {
this.licenceNumber = licenceNumber;
}

}

public class DemoApp {

public static void main(String[] args) {
List<Object> results = new ArrayList<>();
DemoApp app = new DemoApp();
app.fillItUp(results);

Car acar = (Car) results.get(0);
acar.setLicenceNumber("Flying Duck");

}

private void fillItUp(List<Object> results) {
Car car = new Car("sel2in", "electric_VTOL", 540923, 2018, new Date(2018, 3, 32), "Skyprog");
results.add(car);
results.add(new Person("tushar", 39));

}

}

关于java - 为什么我无法访问存储在 ArrayList 元素中的对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42751399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com