Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在方法中正确使用LocalTime?_Java_Interface_Boolean_Localtime - Fatal编程技术网

Java 如何在方法中正确使用LocalTime?

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();

我必须创建一个class CarFactory,它根据季节绘制一辆车(我认为我做得对),并且从晚上20点到早上6点打开给定车的灯。 请输入igonore@Beans,这只是为了测试。我的问题是HashHeadlightSturnedon()的实现应该是什么样子?对于如何执行从晚上20点到早上6点开灯的规定,我有点不知所措

接口:

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