【发布时间】:2019-09-25 15:54:12
【问题描述】:
首先,我对 Java 很陌生,所以如果我的问题不完整,请见谅。我确实经历了一些关于 SO 的线程,即使有一些接近的线程,我也不理解它们或无法根据我的需要修改它们。所以这是一个问题,下面是我从回购中获得的对象列表。
[
{
"esId": 3,
"exam": {
"examId": 1,
"name": "Final Exam",
"startDate": "2019-04-15",
"endDate": "2019-04-24",
"resultReleaseDate": "2019-04-30 07:00:00"
}
},
{
"esId": 44,
"exam": {
"examId": 15,
"name": "Mid Term II",
"startDate": "2019-09-20",
"endDate": "2019-09-25",
"resultReleaseDate": "2019-09-25 18:32:02"
},
"essList": [
{
"esdId": 74,
"subject": {
"subjectId": 1,
"name": "Math"
},
"exDate": "2019-09-20",
"startTime": "19:03",
"maxMarks": 10,
"endTime": "19:03"
},
{
"esdId": 77,
"subject": {
"subjectId": 2,
"name": "Science"
},
"exDate": "2019-09-21",
"startTime": "19:03",
"maxMarks": 10,
"endTime": "19:03"
},
{
"esdId": 79,
"subject": {
"subjectId": 3,
"name": "English"
},
"exDate": "2019-09-20",
"startTime": "19:04",
"maxMarks": 10,
"endTime": "19:04"
}
]
}
]
从上面的列表中,我想返回endDate 大于now 或today 的第一个对象
我尝试了以下方式
ArrayList<ExamStandard> examList = new ArrayList<ExamStandard>();
LocalDate today = LocalDate.now();
String date = today.toString();
for(int i = 0; i < examList.size(); i++)
{
if(examList.get(i).equals(exam) == date){
}
}
这开始引发转换类型错误。不知道该怎么做,如果有人可以帮助我并解释我该怎么做以及发生了什么,那将非常有帮助。
感谢任何帮助,谢谢 维克拉姆
【问题讨论】:
-
equals 返回布尔值,您正在尝试将其与字符串进行比较。没有意义
-
您希望
if(examList.get(i).equals(exam) == date)行做什么?equals返回boolean,然后您将其与String进行比较。这根本没有意义。 -
您应该在您的
ExamStandard class中创建一个Comparator来比较两个日期并使用compareTo来查找您需要的内容
标签: java arrays list spring-boot loops