问题引入
我们会发现getDayOfWeek()这个函数和其他自带函数不一样
直接写会报错
但是如果我们将他变成getDayOfWeek().getValue()
又能够正常运行,我们这次就来看看是为什么
解释
进入getDayOfWeek()源码查看
我们进入getDayOfWeek()的源码中查看
我们可以发现他给我们返回的是一个DayOfWeek对象类型数据
那我们可不可以把上一个代码的接收返回值的类型int改为DayOfWeek对象看看能不能正常运行
我们可以看到能够正常运行,返回的是一个对应星期的英文
深度进入DayOfWeek查看
继续进入DayOfWeek的源码查看
我们可以看到他是一个枚举类!并且枚举项就是为我们的星期的英文单词!
我们往下走可以看见,这不就是我们前面getDayOfWeek()返回的东西吗,
他返回了枚举项里面的数据,所以显示的是星期的英文单词
但是我们就想要就收int类型的数据啊!为什么要加getValue()才能不报错!
我们继续往下面翻源码,可以看见再DayOfWeek中有getValue()这个函数,它返回的是一个int类型数据!源码的注释中有写到用1~7表示星期
总结
所以呢我们可以用两种方法来接受getDayOfWeek()的返回值
①使用DayOfWeek对象接收
LocalDateTime ldt = LocalDateTime.now();//获取星期DayOfWeek dayOfWeek = ldt.getDayOfWeek();System.out.println(dayOfWeek);
②使用getDayOfWeek().getValue()来返回值
LocalDateTime ldt = LocalDateTime.now();//获取星期int dayOfWeek = ldt.getDayOfWeek().getValue();System.out.println(dayOfWeek);