gpt4 book ai didi

java - 在 Java 中使用泛型返回 null 值

转载 作者:行者123 更新时间:2023-12-01 17:50:25 40 4
gpt4 key购买 nike

我正在尝试使用泛型在Java中实现pop()方法,我的方法如下:

public T pop(){
T elem;
if (list!=null){
elem=list.get(this.getSize()-1);
list.remove(this.getSize()-1);
return elem;
}
else return null;
}

如果我在堆栈上放置一些 n 值,并且想要打印它们的值,我将执行以下操作:

System.out.println(stack.pop());

我遇到的问题是,当我想弹出 n+1 值而不是打印空值时,它会返回一个错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1

是否有办法在堆栈为空时打印空值?因为我返回的是泛型类型 T,并且据我所知 Java 无法提前判断它将是哪个对象。

谢谢

最佳答案

public T pop() {
T elem;
if (list!=null || list.isEmpty()) {
elem=list.get(this.getSize()-1);
list.remove(this.getSize()-1);
return elem;
} else return null;
}

检查列表是否为空,而不仅仅是 null。 isEmpty() 可能需要根据所使用的结构进行更改。

关于java - 在 Java 中使用泛型返回 null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50828317/

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