Java 完成ArrayList后,如何阻止该方法返回null?

Java 完成ArrayList后,如何阻止该方法返回null?,java,swing,oop,arraylist,return,Java,Swing,Oop,Arraylist,Return,我的代码有问题,我通过ArrayList获取currentVehicle,并将其返回到GUI界面中显示 我在到达ArrayList的末尾时遇到问题,它开始返回“null”。由于它返回“null”,我无法返回到以前的车辆,因为currentVehicle值现在被分配为“null” 我已尝试使用while循环重新启动循环,else和else if循环,并使用lastIndexOf和isEmpty检查数组列表,并尝试使其重新循环 下面是ArrayList的代码,我正在其中搜索列表中的下一辆车,我认为可

我的代码有问题,我通过
ArrayList
获取
currentVehicle
,并将其返回到GUI界面中显示

我在到达
ArrayList
的末尾时遇到问题,它开始返回“null”。由于它返回“null”,我无法返回到以前的车辆,因为
currentVehicle
值现在被分配为“null”

我已尝试使用
while
循环重新启动循环,
else和else if
循环,并使用
lastIndexOf
isEmpty
检查
数组列表
,并尝试使其重新循环

下面是
ArrayList
的代码,我正在其中搜索列表中的下一辆车,我认为可能存在修复

Showroom.java

 public Vehicle nextVehicle()
    {  
        Vehicle nV = null;

        try
        {      
            if (currentVehicle < vehicleArray.size())
            {
                nV = vehicleArray.get(currentVehicle++);
            }
        }
        catch(Exception e)
        {
            System.out.println("No more vehicles listed");
        }   

        return nV;
    }
log.setText(空)
清除下一辆要显示的车辆的
JPanel
文本框和
log.append(“+s.nextVehicle())
将当前车辆打印到
JPanel
TextArea


任何帮助都将不胜感激。如果需要任何其他代码或SSCCE,我将继续并完成它

如果您想在到达最后一辆车后返回第一辆车,请执行以下操作:

public Vehicle nextVehicle()
    {  
        Vehicle nV = null;

        try
        {      
            if (currentVehicle < vehicleArray.size())
            {
                nV = vehicleArray.get(currentVehicle++);
            } else {
                if (vehicleArray.size() > 0) {
                    nV = verhicleArray.get(0);
                    currentVehicle = 1;
                }
            }
        }
        catch(Exception e)
        {
            System.out.println("No more vehicles listed");
        }   

        return nV;
    }
下一辆公共车辆()
{  
车辆nV=零;
尝试
{      
如果(当前车辆0){
nV=verhicleArray.get(0);
当前车辆=1;
}
}
}
捕获(例外e)
{
System.out.println(“不再列出车辆”);
}   
返回nV;
}

如果您想在到达最后一辆车后回到第一辆车,请执行以下操作:

public Vehicle nextVehicle()
    {  
        Vehicle nV = null;

        try
        {      
            if (currentVehicle < vehicleArray.size())
            {
                nV = vehicleArray.get(currentVehicle++);
            } else {
                if (vehicleArray.size() > 0) {
                    nV = verhicleArray.get(0);
                    currentVehicle = 1;
                }
            }
        }
        catch(Exception e)
        {
            System.out.println("No more vehicles listed");
        }   

        return nV;
    }
下一辆公共车辆()
{  
车辆nV=零;
尝试
{      
如果(当前车辆0){
nV=verhicleArray.get(0);
当前车辆=1;
}
}
}
捕获(例外e)
{
System.out.println(“不再列出车辆”);
}   
返回nV;
}
如果我理解您的代码(和意图),您可以

return vehicleArray.get(vehicleArray.size()-1);
当然,如果
vehicleArray
为空,则上述代码将不起作用。爪哇-8(和番石榴)已经有了这个

public Optional<Vehicle> nextVehicle() {
    if (vehicleArray != null && !vehicleArray.isEmpty()) {
        return Optional
                .ofNullable(vehicleArray.get(vehicleArray.size() - 1));
    }
    return Optional.empty();
}
public可选nextVehicle(){
if(vehiclarray!=null&&!vehiclarray.isEmpty()){
返回可选
.ofNullable(vehiclarray.get(vehiclarray.size()-1));
}
返回可选的.empty();
}
如果我理解您的代码(和意图),您可以

return vehicleArray.get(vehicleArray.size()-1);
当然,如果
vehicleArray
为空,则上述代码将不起作用。爪哇-8(和番石榴)已经有了这个

public Optional<Vehicle> nextVehicle() {
    if (vehicleArray != null && !vehicleArray.isEmpty()) {
        return Optional
                .ofNullable(vehicleArray.get(vehicleArray.size() - 1));
    }
    return Optional.empty();
}
public可选nextVehicle(){
if(vehiclarray!=null&&!vehiclarray.isEmpty()){
返回可选
.ofNullable(vehiclarray.get(vehiclarray.size()-1));
}
返回可选的.empty();
}

完美。谢谢你的回答。太好了。谢谢你的回答。