Java 如何在方法中正确使用LocalTime?
我必须创建一个class CarFactory,它根据季节绘制一辆车(我认为我做得对),并且从晚上20点到早上6点打开给定车的灯。 请输入igonore@Beans,这只是为了测试。我的问题是HashHeadlightSturnedon()的实现应该是什么样子?对于如何执行从晚上20点到早上6点开灯的规定,我有点不知所措 接口:Java 如何在方法中正确使用LocalTime?,java,interface,boolean,localtime,Java,Interface,Boolean,Localtime,我必须创建一个class CarFactory,它根据季节绘制一辆车(我认为我做得对),并且从晚上20点到早上6点打开给定车的灯。 请输入igonore@Beans,这只是为了测试。我的问题是HashHeadlightSturnedon()的实现应该是什么样子?对于如何执行从晚上20点到早上6点开灯的规定,我有点不知所措 接口: public interface Car { boolean hasHeadlightsTurnedOn(); String getCarType();
public interface Car {
boolean hasHeadlightsTurnedOn();
String getCarType();
}
然后是3种类型的汽车,例如其中一种:
public class Sedan implements Car {
@Override
public String getCarType(){
return "Sedan";
}
@Override
public boolean hasHeadlightsTurnedOn() {
return true ;
}
}
汽车制造厂类别:
@Configuration
public class CarFactory {
@Bean
public Car randomCar(){
Car car;
String[] strArr= {"Spring", "Autumn", "Summer","Winter"};
Random generator = new Random();
int chosen = generator.nextInt(strArr.length);
if (chosen == 3) {
car = new SUV();
} else if (chosen == 2) {
car = new Cabrio();
} else {
car = new Sedan();
}
return car;
}
}
LocalDateTime
有一个getHour()
方法,您可以这样使用:
LocalDateTime time = LocalDateTime.now();
if (time.getHour() < 6 || time.getHour() >= 20) {
// headlights on
} else {
// headlights off
}
LocalDateTime=LocalDateTime.now();
if(time.getHour()<6 | time.getHour()>=20){
//车灯亮着
}否则{
//熄灯
}
LocalDateTime
有一个getHour()
方法,您可以这样使用:
LocalDateTime time = LocalDateTime.now();
if (time.getHour() < 6 || time.getHour() >= 20) {
// headlights on
} else {
// headlights off
}
LocalDateTime=LocalDateTime.now();
if(time.getHour()<6 | time.getHour()>=20){
//车灯亮着
}否则{
//熄灯
}
在每种车型上定义一个专用布尔变量。检查当前时间,如果该时间在假定灯亮起的时间范围内,则将其设置为true。像这样的东西
日期=新日期()
在每种车型上定义一个专用布尔变量。检查当前时间,如果该时间在假定灯亮起的时间范围内,则将其设置为true。像这样的东西 日期=新日期()
这将是HashHeadlightSturnedon的函数
boolean hasHeadlightsTurnedOn(){
int hour = LocalTime.now().getHour();
return hour>=20 || hour<6;
}
boolean hashedlightsturnedon(){
int hour=LocalTime.now().getHour();
return hour>=20 | | hour这将是HashHeadlightSturnedon的函数
boolean hasHeadlightsTurnedOn(){
int hour = LocalTime.now().getHour();
return hour>=20 || hour<6;
}
boolean hashedlightsturnedon(){
int hour=LocalTime.now().getHour();
返回时间>=20 | |小时<代码>@覆盖
公共布尔值hashedlightsturnedon(){
LocalTime lt=LocalTime.now();
//千里迢迢
/*int hour=lt.getHour();
如果(小时<6 | |小时>=20){
返回true;
}否则{
返回false;
}*/
//短途
返回lt.getHour()<6 | | lt.getHour()>=20;
}
此外,我建议在接口中使用抽象类或默认方法。这样,您就不必为每个类创建相同的方法
抽象类:
import java.time.LocalTime;
公共抽象类AbstractCar实现了Car{
@凌驾
公共布尔值hashedlightsturnedon(){
LocalTime lt=LocalTime.now();
返回lt.getHour()<6 | | lt.getHour()>=20;
}
}
然后是汽车类:
公共级轿车{
@凌驾
公共字符串getCarType(){
返回“轿车”;
}
}
或
默认方法:
import java.time.LocalTime;
公共接口车{
默认布尔值HashHeadlightSturnedon(){
LocalTime lt=LocalTime.now();
返回lt.getHour()<6 | | lt.getHour()>=20;
}
字符串getCarType();
}
还有你的汽车类,没有hasHeadlightsTurnedOn
功能@Override
公共布尔值hashedlightsturnedon(){
LocalTime lt=LocalTime.now();
//千里迢迢
/*int hour=lt.getHour();
如果(小时<6 | |小时>=20){
返回true;
}否则{
返回false;
}*/
//短途
返回lt.getHour()<6 | | lt.getHour()>=20;
}
此外,我建议在接口中使用抽象类或默认方法。这样,您就不必为每个类创建相同的方法
抽象类:
import java.time.LocalTime;
公共抽象类AbstractCar实现了Car{
@凌驾
公共布尔值hashedlightsturnedon(){
LocalTime lt=LocalTime.now();
返回lt.getHour()<6 | | lt.getHour()>=20;
}
}
然后是汽车类:
公共级轿车{
@凌驾
公共字符串getCarType(){
返回“轿车”;
}
}
或
默认方法:
import java.time.LocalTime;
公共接口车{
默认布尔值HashHeadlightSturnedon(){
LocalTime lt=LocalTime.now();
返回lt.getHour()<6 | | lt.getHour()>=20;
}
字符串getCarType();
}
而你的汽车类,没有了hasHeadlightsTurnedOn函数你使用了可怕的日期时间类,这些类在几年前就被现代的java.time类所取代。在2021年建议使用这些遗留类是一个糟糕的建议。我尽可能简单地保留我的示例,这样它就可以很容易地被消化。人们可以随时重新利用你使用了可怕的日期时间类,这些类在几年前被现代的java.time类所取代。在2021年建议使用这些遗留类是一个糟糕的建议。我将我的示例保持尽可能简单,这样它就可以很容易地被消化。人们可以随时根据自己的意愿重新调整代码的用途,调用
LocalDateTime。现在
几乎从来都不是正确的做法。该类不能表示时间线上的某个时刻,某个特定点。要表示某个特定地区的人们通过墙上的时钟看到的某个时刻,请使用ZoneDateTime
。您的代码正好在这里工作,但这是一个糟糕的示例。此外,对于这个问题,我们不需要m至少,我们只需要LocalTime
。调用LocalDateTime。现在
几乎从来都不是正确的做法。该类不能表示某个时刻,即时间线上的某个特定点。要表示某个特定地区的人们通过墙上的时钟看到的某个时刻,请使用ZonedDateTime
。您的代码正好是这里是rk,但这是一个糟糕的例子。此外,对于这个问题,我们不需要片刻,我们只需要LocalTime
。