我托管了一个Android开放源代码库,我在jcenter上发布了该库供其他人使用。
主存储库中同时包含“演示”应用程序(模块)和库,并使用implementation project(':mylibrary')
以这种形式,一切正常。
但是,当我将库发布到jcenter,并且一个项目(甚至是相同的演示)使用implementation 'com.my:library:1.2.3'
时,我们会丢失类型推断。而已。其他一切都很好,所以就好像我们从Java 8过渡到Java 7一样-lambda仍然可以工作,其他所有工作都可以,只是没有类型推断。就是说这个功能:
public <T extends Thing> T getThing(Class<T> clazz) {
return (T) mThings.get(clazz);
}
我应该可以说ThingSubClass thing = getThing(ThingSubClass.class);
(就像findViewById
一样)
两者都构成“作品”,但是当我从jcenter中拉出时,以上一行迫使我进行投射。
有人知道为什么会这样吗?更好的是,您知道如何解决此问题吗?