我有一段时间没有开发Android,我正在尝试使用Gradle依赖项的新功能做正确的事情.
我想知道当您需要修改一个特定的依赖项以满足您的需求时,最佳实践是什么.
例如,假设我们有两个库通过子类化适配器来扩展RecyclerView功能:
Adapter --> AdapterA
Adapter --> AdapterB
Run Code Online (Sandbox Code Playgroud)
由于Java不支持多重继承,我想让两个库协同工作的唯一方法就是修改其中一个,这样子类层次结构如下所示:
Adapter --> AdapterA --> AdapterB
Run Code Online (Sandbox Code Playgroud)
如果我是正确的,这是要走的路,那么什么是修改和集成库的最佳方法,这里是我能想到的选项:
请证明或建议什么是更好的,如果有任何其他替代方案来实现这一点.
我正在寻找一种从方法中获取Method对象的方便的解决方法.想法:
Method fooMethod = getMethod( new MyObject().foo() ) // returns method "foo" in MyObject
Run Code Online (Sandbox Code Playgroud)
显而易见的方法是将方法的名称用作字符串:
Method fooMethod = MyObject.class.getMethod("foo")
Run Code Online (Sandbox Code Playgroud)
但我想避免这种情况,因为如果我重命名foo()代码将停止工作或我在所有使用它的地方重命名字符串.
用例是我想使用类似于ProperyChangeListeners的东西,但是那些依赖于方法名称作为字符串.我想使用实际的方法(安全)而不依赖于字符串.
我可以使用什么来重命名安全方法?
更新:我想找到一个不依赖IDE功能的纯Java解决方案
我有一个 GraphQL 查询,它调用 REST 服务来获取返回对象。该查询包含一个 Id 参数,然后将该参数传递给服务。但是,如果具有该 ID 的对象不存在,则 REST 服务可以响应 http 状态 404 Not Found。这似乎是正确的回应。
如何在 GraphQL 中对“未找到”响应进行建模?有没有办法通知 GQL 调用者某些内容不存在?
更新
我正在考虑的一些选项:
但目前尚不清楚 GQL API 设计是否有推荐的做法。
Android Studio似乎知道何时有更新版本的依赖项.Maven存储库具有所有版本,因此当然可以检查那里,但它不会对所有依赖项执行此操作.
注意到它适用于com.google和com.android依赖项,但不适用于其他人.这是为什么?可以配置吗?对此有任何见解表示赞赏.
