【发布时间】:2019-08-16 05:02:25
【问题描述】:
我正在尝试搜索一个 java 数组,其中包含一个名为 Tickets 的类的值有一个特定的票证对象...通常用于原始数据类型的 if 语句的 for 循环不起作用
我已经尝试了下面的东西
public Ticket retrieve(String ticketID){
Ticket retur;
for(int i=0;i<numTickets;i++){
if (tickets[i].equals(ticketID)){
retur = tickets[i];
}
}
return retur;
}
我收到错误返回可能未初始化。
【问题讨论】:
-
如果
numTickets是0或者没有一张票等于ticketID,你的应用会发生什么?然后函数将返回未初始化的值。简单的解决方法是添加retur = null,但您必须考虑其余代码(我不知道)。 -
要立即修复,请在声明此变量时使用
Ticket retur = null。 -
当使用一个变量时,编译器检查它是否已经被初始化,或者更好的是,如果它可能没有被初始化(在代码可能采用的任何明显分支上)-如果是这样,您将收到该消息。这与是否使用“原始数据”无关。这是一个很好的迹象,表明实现的逻辑缺少/错误(这里缺少返回的内容或未找到的内容)
-
好的,我想如果你能帮助我如何在非原始值数组中搜索某个对象会有所帮助