首页 > 解决方案 > 在java中访问对象函数时如何解决错误?

问题描述

嗨,我正在 java 中创建一个二维对象数组,并希望访问其中一个函数,该函数仅返回变量的布尔值,但由于某种原因,它会引发错误。代码看起来很简单,但我不知道我做错了什么。我的猜测与我对数组的实现有关,但我认为我做得对。我的目标是为 100x100 网格中的每个值创建类的单独实例。

这是我得到的代码和错误

public class Main {

    public static void main(String[] args) {
        ParkingLot parkingLot = new ParkingLot("Rushi's Parking lot", 100, 100);

        Vehicle car1 = new Car("License");
        parkingLot.registerVehicle();

    }
}

public class ParkingLot {
    String name;
    ParkingSpot[][] parkingGrid;

    public ParkingLot(String name, int xSize, int ySize){
        this.name = name;
        this.parkingGrid = new ParkingSpot[xSize][ySize];
    }

    public void registerVehicle() {
        System.out.println(parkingGrid[0][0].isAvailable());
    }

    public void getNextSpot(Vehicle vehicle){

    }
}

public class ParkingSpot {
    private boolean available = true;
    private String license;
    private int time;

    public boolean isAvailable() {
        return available;
    }

    public void reserveSpot(String license){
        this.license = license;
        this.available = false;
    }
}

错误:

Exception in thread "main" java.lang.NullPointerException
    at ParkingLot.registerVehicle(ParkingLot.java:14)
    at Main.main(Main.java:7)

标签: javamultidimensional-array

解决方案


当您创建ParkingLot类型的对象时,数组parkingGrid仅包含空引用。您需要实际添加要使用的停车位。
到目前为止,您只指定了parkGrid的大小为 100x100 并包含停车位,但各个元素不存在。


推荐阅读