【问题标题】:Classloaders and duplicate package and class names类加载器和重复的包和类名
【发布时间】:2013-12-21 19:38:59
【问题描述】:

我正在使用带有 maven 的 AndroidStudio。我不明白的是重复类如何不会混淆类加载器或构建过程。

我创建了自己的android.util.Log 类(例如,我在我的应用程序中创建了一个android.util 包,在其中我创建了自己的Log 类),而不是使用标准的android Log.d,我使用我自己的。这如何以及为什么会起作用?

我在某处读到有 3 个类加载器 - 您的应用程序类加载器、第 3 方库类加载器和系统类加载器。那么它们是否具有某种优先级,如果您的应用程序类加载器找到 .class 文件,那么它会被“链接”吗?和任何其他重复的 .class 文件无关紧要?

而且...为什么这种行为不会导致任何类型的构建错误/警告?

一个例子是......说我想使用反射来调用我和android都将提供的某个私有类。我想保证无论它是调用我的还是安卓的,都没有导致崩溃的冲突。但我想确切地知道它为什么/如何以我看到的方式工作。

【问题讨论】:

    标签: java android maven classloader


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      相关资源
      最近更新 更多