我正在使用带有maven的AndroidStudio。我不明白的是重复的类如何不会混淆类加载器和构建过程。
我创建了自己的android.util.Log
类(比如,我在我的应用程序中创建了一个android.util
包,并在其中创建了我自己的Log
类,而不是使用标准的android Log.d
,我用自己的。这是如何以及为什么有效?
我读过有3个类加载器 - 你的应用程序类加载器,第三方库类加载器和系统类加载器。那么它们是否具有某种优先级,如果您的应用程序类加载器找到.class文件,那么它会被“链接”?和任何其他重复的.class文件无关紧要?
和...为什么这种行为不会导致任何类型的构建错误/警告?
一个例子是......说我想用反射来调用我和android都会提供的某个私有类。我想保证它是否称为我的或ANdroid,没有碰撞导致崩溃。但是我想确切地知道为什么/它如何运作我看到它的工作方式。
答案 0 :(得分:0)
ClassLoaders按层次结构组织: http://docs.oracle.com/cd/E19501-01/819-3659/beadf/index.html
这可能指向您正在寻找的内容: http://yenliangl.blogspot.fr/2009/11/dynamic-loading-of-classes-in-your.html