为什么我无法访问对象数组中的对象实例?



我开始学习java,当我可以访问对象名称和lastName时遇到了这个问题,但是如果我将它们放在对象数组中则无法到达。

public class Human {
String name;
String lastName;
String[] people;
People(String name, String lastName) {
this.name = name;
this.lastName = lastName;
};
public static People tom = new People("Tom", "Tommy");
public static People ted = new People("Ted", "Teddy");
public static Object[] objects = {
tom,
ted
};
public static void main(String[] args) {
System.out.println(tom.lastName);
System.out.println(objects[0]);

我需要的这条线不起作用。

System.out.println(objects[0].lastName); 
}

很简单:你声明了Object类型的数组。

对象没有名称,只有 People 的一个实例!

换句话说:你想声明一个 People 数组,而不是 Object。

您会看到,编译器只"记住"该变量声明左侧使用的类型。它不知道您实际上创建了一个 Object 数组,并且仅在该数组中放置了 People 的实例。

和不相关:人意味着复数。你应该称该类为Person,或者PersonInfo。

在这里,Object[] objects是一个Object数组,Object 类没有类似lastName的内容。有两种方法可以解决问题。

  1. 将数组声明为People[] objects

  2. 将对象投射给像((People)objects[0]).lastName这样的人

相关内容

  • 没有找到相关文章

最新更新