Java 为什么我不能访问存储在ArrayList元素中的对象的属性?
我有两个包,让我们给它们命名为包1和包2。 A类和B类在包装1中。类A包含一个名为PTable的ArrayList。类B包含一个名为query的函数,该函数根据特定条件过滤类a中的PTable,并返回一个名为result的ArrayList,其中包含PTable中满足该条件的所有元素 我现在有包含C类的包2。C类从包1导入B类;类C是HttpServlet的一个子类。我在C类中创建了一个B类的对象并初始化它Java 为什么我不能访问存储在ArrayList元素中的对象的属性?,java,Java,我有两个包,让我们给它们命名为包1和包2。 A类和B类在包装1中。类A包含一个名为PTable的ArrayList。类B包含一个名为query的函数,该函数根据特定条件过滤类a中的PTable,并返回一个名为result的ArrayList,其中包含PTable中满足该条件的所有元素 我现在有包含C类的包2。C类从包1导入B类;类C是HttpServlet的一个子类。我在C类中创建了一个B类的对象并初始化它 然后调用函数查询并将其分配给名为results的变量。当我尝试获取某个索引处元素的属性时
然后调用函数查询并将其分配给名为results的变量。当我尝试获取某个索引处元素的属性时,我看不到存储在ArrayList PTable中的原始对象的属性。[这是我尝试访问对象属性时显示的内容。我的目标是查看第二张图像提问很好,但首先花些时间学习Java。阅读一本书或在线,您将很快了解强制转换。还有关于类、超级类等 将对象存储在结果数组列表的元素类型变量中 将对象转换回它所属的类型,然后您将看到变量 代码设计说明:在同一数组列表中存储不同类型的类是合法的,也是可能的,但容易出现错误。请尽量避免。如果更改将变量存储到列表中的顺序,也需要更改所有访问代码。总之,学习愉快
有免费的在线Java教程学习它们-> 示例类中,在main方法中,尝试在位置1处获取对象并将其投射给某人:
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));
}
}
很抱歉,只有一张图片,这就是我尝试访问objectWelcome to Stack Overflow属性时显示的内容!请看一下,并通读,特别是和。有免费的在线Java教程学习它们->我希望这个问题会被我们的霸主关闭或删除。所以请复制答案我不是这样问的。你的解决方案与我的问题无关。此外,你一开始的语气粗鲁且没有必要。实际上这是必要的。你的问题因此被其他人否决了。我给了你一个向上的投票,这样你在读完《海洋》后仍然可以问rch优先。