【问题标题】:Android program crashing with Null Pointer exception [duplicate]Android程序因空指针异常而崩溃[重复]
【发布时间】:2018-06-09 03:45:49
【问题描述】:

我不知道我在这里搞砸了什么。在我的字符串数组上似乎出现空指针异常。

这是我在主 Activity 中调用的方法:

public void initializeLocalDealer() {
  String[] cars = new String[]{"Ford", "Chevy", "Chrysler", "Honda"}; 
    Dealer dealer = new Dealer();
    Dealer.setCars(cars);
}

这是我要填充的类对象。

public class Dealer {

    public String name;
    public Car[] car;

    public Dealer() { }

    public void setCars(String[] cars) {
        for(int i = 0; i < cars.length; i++) {
            car[i].name = cars[i];
        }
    }
}

我在这里遗漏了什么超级明显的东西?

【问题讨论】:

  • 你需要初始化汽车数组
  • 您可能希望将您的setCars 方法设为static,因为您将其称为static 方法。
  • 你创建了一个dealer的实例,但是再次使用类名而不是实例名,使用创建的实例....仔细检查..... Dealer Dealer = new Dealer();经销商.setCars(汽车);

标签: java android arrays string


【解决方案1】:
Dealer dealer = new Dealer();
    dealer.setCars(cars); 

Dealer.setCars(cars);修改为dealer.setCars(cars);

public class Dealer {

    public String name;
    public Car[] car;

    public Dealer() {

    }

    public void setCars(String[] cars) {
        -->car = new Car[cars.length];
        for(int i = 0; i < cars.length; i++) {
            car[i]= new Car(cars[i]);;

        }
    }


    }

Car 类中添加构造函数

public Car(String name) {
    name =this.name;
}

【讨论】:

  • 还是不行。因此,如果看起来我确实在调用方法中填充并传递了我的字符串,那么可能是我使用类和对象的方式存在问题。所以从最里面的类开始工作......我有 Class1 ,它有字符串名称;和浮点值。我有具有字符串名称和 Object1 数组的 Cars 类;然后我有一个经销商类,它有一个字符串名称和一个汽车数组。我想如果我创建了“Dealer Dealer = new Dealer(); 创建了一个包含在 Dealer 对象中的所有内容的实例。我是否必须创建一个新的 object1 以及它在哪里完成?
  • 几分钟后我将在我的 IDE 中尝试
  • 我想这是我的困惑,我从未尝试使用数组将自己的对象嵌入到其他对象中。因此,假设 Class1 有两个成员,其中一个是引用字符串类。 Class2 有一个 Object1 数组。 Class3 有一个 Object2 数组。当我调用 Class3 class3 = new Class3() 时,这是否会实例化所有内容?这样做的正确方法是什么?有人将此标记为重复问题,但我查看了答案,并没有明确说明这是如何完成的。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2015-07-04
  • 2015-07-12
  • 2014-02-24
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
相关资源
最近更新 更多