为了账号安全,请及时绑定邮箱和手机立即绑定

从 Java 到 Kotlin

标签:
Android

打印日志

  • Java

System.out.print("Amit Shekhar");System.out.println("Amit Shekhar");
  • Kotlin

print("Amit Shekhar")
println("Amit Shekhar")

常量与变量

  • Java

String name = "Amit Shekhar";final String name = "Amit Shekhar";
  • Kotlin

var name = "Amit Shekhar"val name = "Amit Shekhar"

null声明

  • Java

final String name = null;String otherName;
otherName = null;
  • Kotlin

val name : String? = nullvar otherName : String?
otherName = null

空判断

  • Java

if(text != null){
  int length = text.length();
}
  • Kotlin

val length = text?.length

字符串拼接

  • Java

String firstName = "Amit";String lastName = "Shekhar";String message = "My name is: " + firstName + " " + lastName;
  • Kotlin

val firstName = "Amit"val lastName = "Shekhar"val message = "My name is: $firstName $lastName"

换行

  • Java

String text = "First Line\n" +              "Second Line\n" +              "Third Line";
  • Kotlin

val text = """        |First Line        |Second Line        |Third Line        """.trimMargin()

三元表达式

  • Java

String text = x > 5 ? "x > 5" : "x <= 5";
  • Kotlin

val text = if (x > 5)
              "x > 5"           else "x <= 5"

类型判断和转换 (声明式)

  • Java

if(object instanceof Car){
}Car car = (Car) object;
  • Kotlin

if (object is Car) {
}var car = object as Car

类型判断和转换 (隐式)

  • Java

if(object instanceof Car){
   Car car = (Car) object;
}
  • Kotlin

if (object is Car) {
   var car = object // smart casting}

多重条件

  • Java

if(score >= 0 && score <= 300 ){}
  • Kotlin

if (score in 0..300) { }

更灵活的case语句

  • Java

int score = // some score;String grade;switch (score) { case 10:
 case 9:
  grade = "Excellent";  break; case 8:
 case 7:
 case 6:
  grade = "Good";  break;  default:
     grade = "Fail";    
}
  • Kotlin

var score = // some scorevar grade = when (score) { 9, 10 -> "Excellent"  in 6..8 -> "Good"
 else -> "Fail"}

for循环

  • Java

for (int i = 1; i <= 10 ; i++) { }for (int i = 1; i <= 10 ; i+=2) { }for (String item : collection) { }for (Map.Entry<String, String> entry: map.entrySet()) { }
  • Kotlin

for (i in 1..10) { }for (i in 1..10 step 2) {}for (item in collection) {}for ((key, value) in map) {}

更方便的集合操作

  • Java

final List<Integer> listOfNumber = Arrays.asList(1, 2, 3, 4);final Map<Integer, String> keyValue = new HashMap<Integer, String>();
map.put(1, "Amit");
map.put(2, "Ali");
map.put(3, "Mindorks");
  • Kotlin

val listOfNumber = listOf(1, 2, 3, 4)val keyValue = mapOf(1 to "Amit",
                     2 to "Ali",
                     3 to "Mindorks")

遍历

  • Java

for (Car car : cars) {
  System.out.println(car.speed);
}for (Car car : cars) {
  if(cars.speed > 100) {
    System.out.println(car.speed);
  }
}
  • Kotlin

cars.forEach {
    println(it.speed)
}

cars.filter  { it.speed > 100 }
      .forEach { println(it.speed)}

方法定义

  • Java

void doSomething() {
   // logic here}
  • Kotlin

fun doSomething() {
   // logic here}

带返回值的方法

  • Java

int getScore() {
   // logic here   return score;
}
  • Kotlin

fun getScore(): Int {
   // logic here   return score
}

无结束符号

  • Java

int getScore(int value) {
    // logic here    return 2 * value;
}
  • Kotlin

fun getScore(value: Int): Int {
   // logic here   return 2 * value
}

constructor 构造器

  • Java

public class Utils {

    private Utils() { 
      // This utility class is not publicly instantiable     }
    
    public static int getScore(int value) {
        return 2 * value;
    }
    
}
  • Kotlin

class Utils private constructor() {

    companion object {
    
        fun getScore(value: Int): Int {
            return 2 * value
        }
        
    }
}// other way is also thereobject Utils {

    fun getScore(value: Int): Int {
        return 2 * value
    }

}

Get Set 构造器

  • Java

public class Developer {

    private String name;

    public Developer(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Developer developer = (Developer) o;
        return name != null ? name.equals(developer.name) : developer.name == null;
    }

    @Override    public int hashCode() {
        return name != null ? name.hashCode() : 0;     
    }

    @Override    public String toString() {
        return "Developer{" +"name='" + name +'}';
    }
}
  • Kotlin

data class Developer(val name: String)

工具类

  • Java

public class Utils {

    private Utils() { 
      // This utility class is not publicly instantiable     }
    
    public static int triple(int value) {
        return 3 * value;
    }
    
}int result = Utils.triple(3);
  • Kotlin

fun Int.triple(): Int {
  return this * 3}var result = 3.triple()

原文链接:http://www.apkbus.com/blog-822415-64238.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消