FISHY__ 2020-04-11 11:11 采纳率: 0%
浏览 294

这个空指针异常怎么处理?

package b;

public class MyDate {
private int year;
private int month;
private LeapJduge lj;

public MyDate(int year, int month, LeapJduge lj) {
    super();
    this.year = year;
    this.month = month;
    this.lj = lj;
}

int lastDayMonth() {
    int i = 0;
    switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        i = 31;
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        i = 30;
        break;
    case 2:
        i = lj.isLeap(year) ? 29 : 28;
    default:
        throw new IllegalArgumentException("month is out of range");
    }
    return i;
}

}

package b;

public interface LeapJduge {
boolean isLeap(int year);
}

package b;

import org.junit.Assert;
import org.junit.Test;

public class 测试 {
@Test
public void Tset1() {
MyDate a=new MyDate(2000, 1, null);
Assert.assertEquals(31, a.lastDayMonth());
}
@Test
public void Tset2() {
MyDate a=new MyDate(1999, 2, null);
Assert.assertEquals(28, a.lastDayMonth());
}
@Test
public void Tset3() {
MyDate a=new MyDate(2000, 2, null);
Assert.assertEquals(28, a.lastDayMonth());
}

Test2 和Test3 都抛出了了空指针异常,但是Test1没有
求大佬指教!!
  • 写回答

2条回答 默认 最新

  • Json-Huang 2020-04-11 11:55
    关注

    出现在2月份没有实例化对象LeapJduge,new MyDate(1999, 2, null);不能直接传null,要改成如new MyDate(1999, 2, new LeapJduge());

    评论

报告相同问题?

悬赏问题

  • ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
  • ¥20 js怎么实现跨域问题
  • ¥15 C++dll二次开发,C#调用
  • ¥18 c语言期中复习题(求解)
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 求一个十多年前的国产符号计算软件(MMP)+用户手册
  • ¥15 为什么会突然npm err!啊
  • ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢
  • ¥15 vxworks交叉编译gcc报错error: missing binary operator before token "("