我的Rent数组中的LocalDate请求我将其转换为String

时间:2019-05-17 02:40:27

标签: java

我需要在租金数组中添加一个日期,但是Eclipse希望将LocalDate转换为String,但我不希望它是String

public class Rent {

    private int id;
    private int days;

    public Rent(int id, LocalDate dateOfRent, int d1, LocalDate returnDate) {
        this.id = id;
        dateOfRent = LocalDate.now();
        days = d1;
        returnDate = LocalDate.now();
    }
}

在我的Rent数组上,错误显示在给定的日期上,它要求我将其转换为String并在我的应用程序中出现更多错误

Rent[] rentArray = { 
    new Rent(61, "2019-05-16", 5, "2019-05-21"),
    new Rent(55, "2019-02-16", 10,"2019-02-26"),
    new Rent(51, "2019-01-09", 7, "2019-01-19"),
};

2 个答案:

答案 0 :(得分:1)

来自comment

  

谢谢,但是如何在Rent [] rentArray中实现呢?

您创建一个便捷的构造函数,即重载/替代构造函数:

public Rent(int id, String dateOfRent, int d1, String returnDate) {
    this(id, LocalDate.parse(dateOfRent), d1, LocalDate.parse(returnDate));
}

现在您的代码将按编写的方式工作。

答案 1 :(得分:0)

正如@shmosel所说,您可以执行以下操作:

Rent[] rentArray = { 
        new Rent(61, LocalDate.parse("2019-05-16"), 5, LocalDate.parse("2019-05-21")),
        new Rent(55, LocalDate.parse("2019-02-16"), 10, LocalDate.parse("2019-02-26")),
        new Rent(51, LocalDate.parse("2019-01-09"), 7, LocalDate.parse("2019-01-19")) 
        };

或修改您的构造函数,以日期作为String,然后使用解析 LocalDate.parse在构造函数内部