使用Java @Override注释的最佳实践是什么?为什么?
使用@Override注释标记每个重写方法似乎有点过分.是否有某些编程情况需要使用@Override和其他不应该使用的@Override?
以明确的方式有谁能解释之间的实际差别java.lang.annotation.RetentionPolicy常数SOURCE,CLASS和RUNTIME?
我也不完全确定"保留注释"这个短语是什么意思.
RetentionPolicy.CLASS和之间有什么实际区别RetentionPolicy.RUNTIME?
看起来两者都记录在字节码中,无论如何都可以在运行时访问它们.
我知道在评论中出于文档目的意味着什么,但除此之外是什么意思?(我通常会谷歌这个,但每个非字母符号出现在结果中)
我使用com.android.tools.build:gradle:3.1.1了最新版本的摇篮(https://services.gradle.org/distributions-snapshots/gradle-4.8-20180417000132+0000-all.zip).
当我使用compileOnly依赖时,其中一些不会编译,有些会.例如
compileOnly "com.android.support:support-v4:27.1.1"
Run Code Online (Sandbox Code Playgroud)
完美的工作
compileOnly "com.facebook.stetho:stetho:1.5.0"
Run Code Online (Sandbox Code Playgroud)
给出编译错误:
Android dependency 'com.facebook.stetho:stetho:1.5.0' is set to compileOnly/provided which is not supported
Run Code Online (Sandbox Code Playgroud)
我的印象比任何依赖都可以编译.没有其他说明(https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations).这两个库都具有传递依赖性.
任何帮助将不胜感激.