gpt4 book ai didi

java - 使用 ThreeTen-Backport 与 java.time 时是否应该完全限定包前缀?

转载 作者:行者123 更新时间:2023-11-30 06:02:49 24 4
gpt4 key购买 nike

我们在项目中使用了“三十反向移植”,因为我们的一位客户正在使用 Java 7。“三十反向移植”为我们提供了 Java 8 中引入的新日期时间功能 (java.time.*)。

我想知道以下是否是一个好的做法。由于我们的大多数客户都使用 Java 8,并且有一天我们可能会将所有客户升级到 Java 8,因此使用 org. Threeten.bp 完全限定类名真的有意义吗?最终,我们可能会将所有客户升级到 Java 8 并删除这种依赖关系,如果我们最终这样做,那么如果我们只使用不带包前缀的类名,那么代码更改将会更少。举个代码示例,我的意思是这样的。

import org.threeten.bp.LocalDate Time;

public class Example {

public void example() {
LocalDateTime datetime = // ....
}
}

您可以在示例中看到我引用的 LocalDateTime 没有包前缀。在Java 8中,将加载java.time.LocalDateTime类,还是org. Threeten.bp.LocalDateTime?有点不清楚,因为在 Java 8 的这段代码中,有两个 float 的 LocalDateTime,一个来自 java.time,另一个来自 org. Threeten.bp。我假设 native Java 库将被优先并加载,但我可能是错的。

这样做是好的做法吗?或者它会生成编译器警告/错误吗?即使它不会生成任何警告或错误,这仍然是一个不好的做法吗?我很想这样做,因为通过包完全限定一个类实在是丑陋,如果我们最终删除了“三个十”依赖项,那么我们将不得不更改该代码的每个实例,而不仅仅是删除 import 语句。很高兴听到您的想法。

最佳答案

只有当您同时导入时才会发生冲突:

import org.threeten.bp.LocalDateTime;
import java.time.LocalDateTime;

仅具有 import org. Threeten.bp.LocalDateTime; 不应导致问题。因此,您不需要使用 LocalDateTime datetime = ...

完全限定任何语句

关于java - 使用 ThreeTen-Backport 与 java.time 时是否应该完全限定包前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53565627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com