@linux1s1s
2020-12-02T10:59:50.000000Z
字数 2123
阅读 1016
Tips
请务必按照以下约束严格要求
// 添加滚动条目,下面代码放入AS,会有黄色波浪线,请修改完再提交private fun addScrollitem(rowNumber: Int,dataBeans: ArrayList<HotBannerDataBean>,listStyle: Int) {...}
// 下面代码放入AS,var会有黄色块,建议修改为valvar layoutparams: RelativeLayout.LayoutParams = img.layoutParams as RelativeLayout.LayoutParams
比如
com.yonghui.yhd.xxx,不鼓励使用多个词,如果使用多个词,请全部小写,比如cn.yonghui.hyd.category.business.newcategory
open class DeclarationProcessor { ... }object EmptyDeclarationProcessor : DeclarationProcessor() { ... }
fun processDeclarations() { ... }
Good
private var toolbarTitle: Int = 0
Bad
fun setData(products: ArrayList<HotSuggestProductDataBean>?, mCartView: View?){...}
类的名称通常是用来解释类是什么的名词或者名词短语:List、 PersonReader。
方法的名称通常是动词或动词短语,说明该方法做什么:close、 readPersons。
当使用首字母缩写作为名称的一部分时,如果缩写由两个字母组成,就将其大写(IOStream); 而如果缩写更长一些,就只大写其首字母(XmlFormatter、 HttpInputStream)
新增类或者方法,请使用ktlint插件格式化
if (string.isEmpty()) returnval value = if (a == b) 0 else 1when (value) {0 -> return// …}
Good
val myValue = if (condition) {0} else {1}
Bad
val myValue = if (condition)0else1
通常,一个类的内容按以下顺序排列:
不要按字母顺序或者可见性对方法声明排序,也不要将常规方法与扩展方法分开。而是要把相关的东西放在一起,这样从上到下阅读类的人就能够跟进所发生事情的逻辑。选择一个顺序(高级别优先,或者相反)并坚持下去。
将嵌套类放在紧挨使用这些类的代码之后。如果打算在外部使用嵌套类,而且类中并没有引用这些类,那么把它们放到末尾,在伴生对象之后。
方法里的参数要声明为可空类型,防止由于运行时数据为空或Kotlin与Java代码相互调用产生IllegalStateException异常导致Crash
对于Java中要求强制加try-catch的场景,编译器不会自动提示,需要我们自己加上,如:new JSONObject("xxx"),xx.toInt()等
I/O操作及加锁操作或可能出现内存泄露的场景,必须使用finally语句进行处理
建议所有进行类型转换的操作,都使用as?,以防止类型不匹配导致的异常问题
class MyFragment : Fragment() {// Good(context as? Activity)?.finish()// Not Good(context as Activity).finish()}
!!修饰lateinit来定义不可空类型的变量,可能会在使用时出现null的情况
private val lazyImmutableValue: String by lazy {"Hello"}private val lazyImmutableValueNoThreadSafe: String by lazy(LazyThreadSafetyMode.NONE) {"Hello"}
