继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

从 Java 到 Kotlin

红颜莎娜
关注TA
已关注
手记 125
粉丝 17
获赞 65

打印日志

  • 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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP