基于JAVA的XML增删改查系统,从网上找的代码自己改了下,然后运行查找的时候出现这个问题,根本不知道怎么下手改啊QAQ
求各位帮帮忙看看package cn.com.flight.userUI;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;import cn.com.flight.dao.FlightDao;
import cn.com.flight.domain.FlightInfo;
import cn.com.flight.exception.FlightNotExitsException;public class UserTestCURD { private static BufferedReader br = new BufferedReader(
new InputStreamReader(System.in)); public static void main(String[] args) {
System.out.println("请输入要进行的操作:1新增 2删除 3查找 4修改"); try {
int a = Integer.valueOf(br.readLine());
switch (a) {
case 1:
case1();
break;
case 2:
case2();
break;
case 3:
case3();
break;
default:
System.out.println("不支持的操作");
}
} catch (FlightNotExitsException e) {
System.out.println("您要找的航班不存在");
} catch (NumberFormatException e) {
System.out.println("输入有误");
} catch (Exception e) { System.out.println("出错了");
e.printStackTrace();
}
} public static void case1() {
FlightInfo s = new FlightInfo();
FlightDao dao = new FlightDao();
try {
System.out.print("请输入航班号:");
s.setFlightNo(br.readLine());
System.out.print("请输入航空公司");
s.setAirline(br.readLine());
System.out.print("请输入目的地");
s.setArrival(br.readLine());
System.out.print("请输入登机口");
s.setGate(br.readLine());
System.out.print("请输入预计起飞时间");
s.setDepartureTime(br.readLine());
System.out.print("请输入预计到达时间");
s.setArriveTime(br.readLine());
System.out.print("请输入状态");
s.setStatus(br.readLine()); dao.add(s);
System.out.println("新增成功");
} catch (Exception e) {
throw new NumberFormatException();
}
} public static void case2() throws FlightNotExitsException {
try {
FlightDao dao = new FlightDao();
System.out.println("请输入航班号");
java.util.Scanner sin = new java.util.Scanner(System.in);
String s = br.readLine();
dao.delete(s);
System.out.println("删除成功");
} catch (IOException e) {
throw new RuntimeException();
}
} public static void case3() throws FlightNotExitsException {
try {
FlightDao dao = new FlightDao();
System.out.println("请输入航班号");
String s = br.readLine();
FlightInfo flightno = dao.find(s);
System.out.println("预计起飞时间:" + flightno.getDepartureTime()
+ "预计到达时间:" + flightno.getArriveTime() + "目的地:"
+ flightno.getArrival() + "登机口:" + flightno.getGate()
+ "状态:" + flightno.getStatus());
} catch (FlightNotExitsException e) {
throw e;
} catch (Exception e) {
throw new NullPointerException();
}

}
}

解决方案 »

  1.   

    java.lang.NullPointerException
    at cn.com.flight.userUI.UserTestCURD.case3(UserTestCURD.java:97)
    at cn.com.flight.userUI.UserTestCURD.main(UserTestCURD.java:29)
      

  2.   

    case  97行   main方法29行   去看看   走一遍debug空值了
      

  3.   

    case3里的对象可能是空值 
    FlightInfo flightno = dao.find(s);有可能这个对象是空的
      

  4.   

    先在case3方法打印s的值,和预期一样不
    dao.find(s);应该是这个方法没取到值,返回null然后在后面调用方法的时候报错了.
    如果会debug,在dao.find(s);打个断点然后慢慢看看哪错了