这个问题在这里已经有了答案:
Importing two classes with same name. How to handle?
(11 个回答)
7年前关闭。
我正在练习如何处理日期。但是当我想使用 javafx datepicker 时我被卡住了。因为它只适用于 java.time.LocalDate 我正在尝试这样的事情。
// here i import java.time.LocalDate to get the date from the datepicker;
LocalDate dueDate = datepickerInvoiceDueDate.getValue();
int year = dueDate.getYear();
int month = dueDate.getMonthValue();
int day = dueDate.getDayOfMonth();
//but here i want to import org.joda.time.LocalDate;
LocalDate dueDatejt = new LocalDate(year, month, day);
有解决方法吗?
是否可以将 Localdate(joda 时间)存储在 mysql 数据库中?
我找到了一个临时解决方案,但我认为这不是正确的方法?
java.time.LocalDate dueDate = datepickerInvoiceDueDate.getValue();
int year = dueDate.getYear();
int month = dueDate.getMonthValue();
int day = dueDate.getDayOfMonth();
//import org.joda.time.LocalDate;
LocalDate dueDatejt = new LocalDate(year, month, day);
最佳答案
这两个库的作者都写在 Joda-Time-website :
Note that Joda-Time is considered to be a largely “finished” project. No major enhancements are planned. If using Java SE 8, please migrate to java.time (JSR-310).
所以很明显,您应该使用解决方法来完全限定 Joda-Time 的类名,仅作为临时解决方案。相反,其意图和官方建议是在 Java-8 平台上迁移。
虽然通常没有 1:1 迁移(需要付出一些努力!),但 Joda-Time 将不再处于实际开发中(放弃许多新功能,只是修复错误)这一事实是迁移的有力论据。另一个支持迁移的有力论据是 Joda-Time 与 Java-8 的互操作性缺失。作者有最初的计划来支持像
TemporalAccessor
这样的低级接口(interface)。但放弃了它(可能是由于缺乏资源)。这个概念是什么意思?互操作性的具体示例(撇开编写完全限定类名的令人讨厌的事实):与
TemporalAccessor
-支持你可以写:org.joda.time.LocalDate joda = new org.joda.time.LocalDate(year, month, day);
java.time.LocalDate date = java.time.LocalDate.from(joda);
但实际上你必须写:
org.joda.time.LocalDate joda = new org.joda.time.LocalDate(year, month, day);
java.time.LocalDate date = java.time.LocalDate.of(joda.getYear(), joda.getMonthOfYear(), joda.getDayOfMonth());
所以很明显,在你的应用程序中同时支持这两个库并不是一个好主意。
关于java - 我如何同时使用 org.joda.time.LocalDate 和 java.time.LocalDate;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30120488/