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

How to easily switch imports sources in java?

提问人:Ariles 提问时间:5/16/2019 更新时间:5/20/2019 访问量:56

问:

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

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

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

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

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

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

java android 导入 threetenbp java-time

评论

0赞 Meno Hochschild 5/16/2019
在级别 26 以下的 Android 中,库 using 不可用。因此,没有机会在较旧的 Android 版本上使用该库。唯一的方法是选择(如果有的话)保存该库的两个不同版本 - 其中一个使用 threetenbp 代替。我不知道你是否可以自己创建它,或者从你也许可以编辑的可用来源构建它(基于一个分支?java.time
0赞 Ariles 5/16/2019
@MenoHochschild是的,这正是我在上面试图解释的(“......这个想法是让它使用 imports 或 imports 来编译 2 个版本“)。现在,问题是我怎样才能以干净的方式做到这一点?java.timeorg.threeten.bp
1赞 Anonymous 5/17/2019
我建议你永远使用向后移植(直到有一天你可以切换到使用内置的java.time总是)。虽然向后移植是为 Java 6 和 7 开发的,但它也适用于更高版本的 Java。

答:

1赞 Ariles 5/20/2019 #1

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

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

注意:注意 和 中的差异 (A)。threetenbpthreetenAbp