如何在java中轻松切换导入源?
注意:请为这个问题建议一个更好的标题 假设我有两个同名的类,我想在编译之前导入其中一个,具体取决于用例/应用程序版本。有办法吗 你可能会问,我为什么需要这个 我需要使用一个重要的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.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。