Java和Kotlin写法对比


Thread

Java
  new Thread(new Runnable() {
       @Override
       public void run() {
          //--------------
       }
}).start();
Kotlin
  Thread(Runnable {
     //--------------
  }).start()

Handler

Java
  private Handler handler=new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message msg) {
            switch(msg.what){
                    case 0:
                          break;
                    default:
                          break; 
            }
            return false;
        }
    });
Kotlin
private val handler=Handler(Handler.Callback{msg->
    when(msg.what){
        0->{}
        else->{}
     }
    false
})

OnClickListener

Java
  btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                
            }
});
Kotlin
btn.setOnClickListener{}

RadioGroup.setOnCheckedChangeListener

Java
  RadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
            @Override 
            public void onCheckedChanged(RadioGroup group, int checkedId) { 
                switch(checkedId){
                    case R.id.nav_bottom_menu_1:
                         break;
                    case R.id.nav_bottom_menu_2:
                         break;
                    case R.id.nav_bottom_menu_3:
                         break;
                    case R.id.nav_bottom_menu_4:
                         break;
                }
            } 
        }); 
Kotlin
  radioMenu.setOnCheckedChangeListener { _, checkedId ->
            when (checkedId) {
                R.id.nav_bottom_menu_1 -> {}
                R.id.nav_bottom_menu_2 -> {}
                R.id.nav_bottom_menu_3 -> {}
                R.id.nav_bottom_menu_4 -> {}
            }
        }

创建实体类

Java
  public class Student{
      private String name;
      private int age;
      public String getName(){
            return name;
      }
      public void setName(String name){
            this.name=name;
      }
      public String getAge(){
            return age;
      }
      public void setAge(String age){
            this.age=age;
      }
        @Override
        public String toString() {
            return "Student{" +
                "name='" + name+ '\'' +
                ", age='" + age+ '\'' +
                '}';
    }
}
Kotlin
  data class Student(var name:String,var age:Int) {
    override fun toString(): String {
        return "Student(name='$name', age=$age)"
    }
}
//注意:
//1、声明为var类型后系统自动实现get\set方法 如果是val类型则无法用xx.name调用  
//2、该类默认实现了Student(name,age)构造器,如果想在调用中以空构造器实现,需要给该类赋初值如:
data class Student(var name:String="",var age:Int=0) {
    //::::::
}

判断空执行语句

Java
  if(null!=user){
        user.setName("xxx")
  }
Kotlin
  user?.name=xxx
Kotlin异步线程
  //需要依赖 'org.jetbrains.anko:anko-common:0.9'
  doAsync{
    //------------
    //切换到主线程
    uiThread{
       //------------
    }
  }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容