我的代码有问题:
public DatePicker data = new DatePicker();
String date = "2014-08-15";
public void verify() {
if (data.getValue().equals(date)) {
System.out.println("Success!!!");
}
}
如果DatePicker
中选择的日期(通过鼠标单击)等于String
"日期"变量,比我想要出现的那条消息(实际上我想要一些坐标改变,但是你要理解我发了一条消息)。
答案 0 :(得分:1)
data.getValue()。equals()仅比较LocalDate对象,并为所有其他比较返回false:
检查此日期是否等于另一个日期。 将此LocalDate与另一个进行比较,确保日期相同。
仅比较LocalDate类型的对象,其他类型返回false。
REF: http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#equals-java.lang.Object-
如果要将数据DatePicker与日期字符串进行比较,则需要执行字符串比较或创建LocalDate对象以与data.getValue()返回的DatePicker的LocalDate对象进行比较
答案 1 :(得分:1)
从DatePicker docs getValue()返回LocalDate
。
您可以创建一个合适的LocalDate
,以便与LocalDate.of(int year, int month, int dayOfMonth)
(docs)方法进行比较。您可以使用以下代码创建指定的日期:
LocalDate date = LocalDate.of(2014, 8, 15);
与完全相同的代码进行比较:
public void verify() {
if (data.getValue().equals(date)) {
System.out.println("Success!!!");
}
}
此外,equals
的{{1}}方法仅适用于其他LocalDate
。
答案 2 :(得分:1)
answer by nejinx是正确的。
如果您将“DatePicker”视为返回JavaFX对象的DatePicker
java.time.LocalDate类,则需要与另一个java.time.LocalDate对象进行比较。
java.time.LocalDate targetLocalDate = LocalDate.of( 2014, 8, 15 );
// OR… LocalDate target = LocalDate.parse( "2014-08-15" );
LocalDate localDatePicked = datePicker.getValue();
if ( localDatePicked.equals( targetLocalDate )
{
System.out.println("Success!!!");
}