首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JDK中的类,而不是android (ADK)

使用JDK中的类,而不是android (ADK)
EN

Stack Overflow用户
提问于 2016-03-11 08:54:56
回答 1查看 328关注 0票数 3

是否有可能使用JDK (1.7)中的类而不是Android (ADK,API 23)?

我需要使用的类存在于Android (API 23) 和JDK (1.7)中的中。默认情况下,使用ADK中的类。但是,我想使用JDK中的类。

在我的例子中,我想使用DatatypeFactory.newInstance(factoryClassName, classLoader),它放在JDK和ADK中的包javax.xml.datatype中。由于实现上的差异,我希望使用来自JDK的类,而不是ADK。

如何使用来自JDK的类而不是ADK的类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 09:32:26

你不能那样做。无论如何,不要简单地切换导入语句。在作为目标平台的Android上运行的代码将无法访问Java类,因此代码将无法加载类,或者它将以完全限定的名称加载这个类的Android版本(这就是您的情况)。

如果您希望使用Java中的特定实现,则必须在目标平台上提供该实现。

你有两个选择,但两者都不是好的:

使用Java作为库

通过将rt.jar(~50 By )引入您的项目。然而,这将产生许多潜在的问题,因为Android和Java镜像了一些包和类,最终可能会加载错误的版本。

把源头带进来

第二个选择--只是稍微好一点--是将该类的源代码引入到您的项目中,前提是它的所有依赖项都可以由Android满足,或者也可以作为源代码引入。这会很痛苦..。

然而,正确的解决办法是

拥抱生态系统

我不知道您的具体需求是什么,但我敢打赌Android实现这个类非常接近Java。如果您不能通过使用Android来实现某件事情,那么在这里尝试询问这个特定的问题,或者搜索可以实现的第三方库,您需要什么。也许解决办法比你想象的要容易。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35935866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档