如何在java中轻松切换导入源?

如何在java中轻松切换导入源?,java,android,import,threetenbp,java-time,Java,Android,Import,Threetenbp,Java Time,注意:请为这个问题建议一个更好的标题 假设我有两个同名的类,我想在编译之前导入其中一个,具体取决于用例/应用程序版本。有办法吗 你可能会问,我为什么需要这个 我需要使用一个重要的java库,它使用java.time,但我还需要支持min sdk 23(Android 6.0)。我可以在Android应用程序中使用所有java.timeAPI,但我需要从org.threeten.bp导入它们 那个重要的图书馆实际上是私人的。因此,我们的想法是让它使用java.timeimports或org.thr

注意:请为这个问题建议一个更好的标题

假设我有两个同名的类,我想在编译之前导入其中一个,具体取决于用例/应用程序版本。有办法吗

你可能会问,我为什么需要这个

我需要使用一个重要的java库,它使用
java.time
,但我还需要支持min sdk 23(Android 6.0)。我可以在Android应用程序中使用所有
java.time
API,但我需要从
org.threeten.bp
导入它们

那个重要的图书馆实际上是私人的。因此,我们的想法是让它使用
java.time
imports或
org.threeten.bp
imports来编译两个版本,它们将与Android和桌面java应用程序兼容

我希望我的解释足够清楚。
谢谢你的帮助

正如@Ole V.V.
然后,在我的android项目中,我使用了
threetenAbp
(android特定版本),并使用gradle将其导入库中。最后,排除库中使用的包意味着使用
threetenAbp

implementation ('my-library') {
    exclude group: 'org.threeten'
}

注意:请注意
threetenbp
threetenAbp

中的区别(A)使用
java.time的库在26级以下的Android中不可用。因此,没有机会在较旧的Android版本上使用该库。唯一的方法是(如果必须的话)保存该库的两个不同版本——其中一个使用threetenbp。我不知道你是否可以自己创建它,或者从你可以编辑的可用资源(基于fork?)构建它。@MenoHochschild是的,这正是我试图在上面解释的(“…想法是让它使用
java.time
imports或
org.threen.bp
imports来编译2个版本”)。现在,问题是如何以干净的方式做到这一点?我建议您只需始终使用backport(直到有一天您可以切换到使用内置的java.time always)。虽然backport是为Java6和Java7开发的,但它也适用于更高版本的Java。