gpt4 book ai didi

java - 使用java实现HashMap

转载 作者:行者123 更新时间:2023-12-01 10:22:00 26 4
gpt4 key购买 nike

我得到了这个代码:

public class MatriceMap extends AbstractMatrix {

HashMap<Position,Integer> valeurs;
public MatriceMap(int nbl, int nbc) {
super(nbl, nbc);
values = new HashMap<Position, Integer>();
}
@Override
public int getValue(int x, int y) {
Position p=new Position(x,y);
int m=valeurs.get(p);
return m;
}

我的 getValue 方法出现错误:java.lang.NullPointerException

最佳答案

如果 valuers.get(p) 返回 null,

int m=valeurs.get(p); 将抛出 NullPointerException ,由于尝试将 null 值自动拆箱为原始 int

如果您的方法返回一个Integer,那么它也可以返回一个null:

public Integer getValeur(int x, int y) {
Position p=new Position(x,y);
Integer m=valeurs.get(p);
return m;
}

编辑:

在看到您无法更改 getValeur 的返回类型的评论后,您唯一的选择(除了返回表示 null 的默认值之外)是抛出未经检查的异常(或检查的异常)异常(如果您要重写的方法已经抛出该异常或该异常的父类(super class))如果 valuers.get(p) 返回 null :

public int getValeur(int x, int y) {
Position p=new Position(x,y);
Integer m=valeurs.get(p);
if (m == null) {
throw new IllegalArgumentException ("Invalid position " + x + "," + y);
}
return m;
}

关于java - 使用java实现HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35535439/

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