猿问

空返回,从 csv 文件获取特定数据

我正在尝试从csv文件中获取特定数据。在本例中,im 使用 ID,这是文件中的第一个字符串。


动物详情.txt


0,2,AmercianShorthair,100,AmercianShorthair,AmercianShorthair,y,y,900.0,Ann,

3,4,GermanShepherd,100,GermanShepherd,GermanShepherd,no,yes,600.0,Dave,

6,3,Poodle,100,Poodle,Poodle,yes,no,300.0,Dianna,

456,4,Azawakh,50,Unknown,Azawakh,no,no,300.0,April,

25041019042018,1,Vizsla,50,Vizsla,TreeingTennesseeBrindle,no,yes,500.0,Lex,

3271,1,Beagle,50,Beagle,Unknown,no,no,200.0,Blanton,

48331827032019,33,sheperd,50,50,50,no,yes,300.0,Mike,

主应用


public class AppTest {


    public static void main(String[] ages) {


        //Load file 

        AnimalManager aMgr = new AnimalManager();

        aMgr.loadFromFile("AnimalDetails.txt");     


        //Test DELETE By Animal ID

        try {

        Animals anim = aMgr.getAnimalById("0");//Insert animal ID here

        aMgr.deleteAnimal(anim);

        } catch (IllegalArgumentException exc) {

          System.out.println(exc);

        }

    }

}

经理


//Delete animal

public void deleteAnimal (Animals a) {

    if (a == null)

        throw new IllegalArgumentException("Animal argument is null");


    animalList.remove(a);

}


//Get animal by ID

public Animals getAnimalById(String ID) {

    for (Animals a : this.animalList) {

        if (a.getID().equals(ID))

            return null;     

    }

    return null;

}

当我在主应用程序中插入动物ID时,它会返回空值,而不是成功的删除消息。这里可能有什么问题?


输出: java.lang.非法参数异常: 动物参数为空


一只甜甜圈
浏览 100回答 2
2回答

拉丁的传说

看起来条件语句应该返回 ID 而不是空值,以便获取动物 byID :)

牧羊人nacy

首先,您始终从获取动画字节字节返回空值。您应该将其更改为:public Animals getAnimalById(String ID) {    for (Animals a : this.animalList) {        if (a.getID().equals(ID))            return a;         }    return null;}其次,在这样的代码中进行空值检查并没有什么坏处:Animals anim = aMgr.getAnimalById("0");//Insert animal ID hereif(anim!=null) aMgr.deleteAnimal(anim);虽然我认为这个特定的代码只是作为一个例子。但是仍然 - 具有给定ID的动物可能不在列表中,因此通常应该在此类代码中放置空检查,因为我认为您不希望在这种情况下程序失败。
随时随地看视频慕课网APP

相关分类

Java
我要回答