加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

从java到Kotiln

发布时间:2020-12-15 07:30:41 所属栏目:Java 来源:网络整理
导读:打印日志 Java 1 2 System.out.print( "Amit Shekhar" ); System.out.println( "Amit Shekhar" ); Kotlin 1 2 print( "Amit Shekhar" ) println( "Amit Shekhar" ) 常量与变量 Java 1 2 String name = "Amit Shekhar" ; final String name = "Amit Shekhar"


打印日志

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

常量与变量

  • Java
      
      
1
2
      
      
String name = "Amit Shekhar";
final String name = "Amit Shekhar";
  • Kotlin
      
      
1
2
      
      
var name = "Amit Shekhar"
val name = "Amit Shekhar"

null声明

  • Java
      
      
1
2
      
      
String otherName;
otherName = null;
  • Kotlin
      
      
1
2
      
      
var otherName : String?
otherName = null

空判断

  • Java
      
      
1
2
3
      
      
if (text != null) {
? int length = text.length();
}
  • Kotlin
      
      
1
2
3
      
      
text?.let {
val length = text.length
}

字符串拼接

  • Java
      
      
1
2
3
      
      
String firstName = "Amit";
String lastName = "Shekhar";
String message = "My name is: " + firstName + " " + lastName;
  • Kotlin
      
      
1
2
3
      
      
val firstName = "Amit"
val lastName = "Shekhar"
val message = "My name is: $firstName $lastName"

换行

  • Java
      
      
1
2
3
      
      
String text = "First Linen" +
? ? ? ? ? ? ? "Second Linen" +
? ? ? ? ? ? ? "Third Line";
  • Kotlin
      
      
1
2
3
4
5
      
      
val text = """
? ? ? ? |First Line
? ? ? ? |Second Line
? ? ? ? |Third Line
? ? ? ? """.trimMargin()

三元表达式

  • Java
      
      
1
      
      
String text = x > 5 ? "x > 5" : "x <= 5";
  • Kotlin
      
      
1
2
3
      
      
val text = if (x > 5)
? ? ? ? ? ? ? "x > 5"
?? ? ? ? ? else "x <= 5"

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

  • Java
      
      
1
2
3
      
      
if (object instanceof Car) {
}
Car car = (Car) object;
  • Kotlin
      
      
1
2
3
      
      
if ( object is Car) {
}
var car = object as Car

类型判断和转换 (隐式)

  • Java
      
      
1
2
3
      
      
if (object instanceof Car) {
?? Car car = (Car) object;
}
  • Kotlin
      
      
1
2
3
      
      
if ( object is Car) {
?? var car = object
}

多重条件

  • Java
      
      
1
      
      
if (score >= 0 && score <= 300) { }
  • Kotlin
      
      
1
      
      
if (score in 0. .300) { }

更灵活的case语句

  • Java
      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
      
      
int score = // some score;
String grade;
switch (score) {
case 10:
case 9:
grade = "Excellent";
break;
case 8:
case 7:
case 6:
grade = "Good";
break;
case 5:
case 4:
grade = "Ok";
break;
case 3:
case 2:
case 1:
grade = "Fail";
break;
default:
? ? grade = "Fail";
}
  • Kotlin
      
      
1
2
3
4
5
6
7
8
      
      
var score = // some score
var grade = when (score) {
9,10 -> "Excellent"?
in 6. .8 -> "Good"
4,5 -> "Ok"
in 1. .3 -> "Fail"
else -> "Fail"
}

for循环

  • Java
      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
      
      
for ( int i = 1; i <= 10 ; i++) { }
for ( int i = 1; i < 10 ; i++) { }
for ( int i = 10; i >= 0 ; i--) { }
for ( int i = 1; i <= 10 ; i+= 2) { }
for ( int i = 10; i >= 0 ; i-= 2) { }
for (String item : collection) { }
for (Map.Entry<String,String> entry: map.entrySet()) { }
  • Kotlin
      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
      
      
for (i in 1. .10) { }
for (i in 1 until 10) { }
for (i in 10 downTo 0) { }
for (i in 1. .10 step 2) { }
for (i in 10 downTo 1 step 2) { }
for (item in collection) { }
for ((key,value) in map) { }

更方便的集合操作

  • Java
      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
      
      
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");
// Java 9
final List<Integer> listOfNumber = List.of( 1,String> keyValue = Map.of( 1,"Amit",
2,"Ali",
3,"Mindorks");
  • Kotlin
      
      
1
2
3
4
      
      
val listOfNumber = listOf( 1,4)
val keyValue = mapOf( 1 to "Amit",
?? ? ? ? ? ? ? ? ? ? 2 to "Ali",
?? ? ? ? ? ? ? ? ? ? 3 to "Mindorks")

遍历

  • Java
      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
      
      
// Java 7 and below
for (Car car : cars) {
System.out.println(car.speed);
}
// Java 8+
cars.forEach(car -> System.out.println(car.speed));
// Java 7 and below
for (Car car : cars) {
if (car.speed > 100) {
System.out.println(car.speed);
}
}
// Java 8+
cars.stream().filter(car -> car.speed > 100).forEach(car -> System.out.println(car.speed));
  • Kotlin
      
      
1
2
3
4
5
6
      
      
cars.forEach {
println(it.speed)
}
cars.filter { it.speed > 100 }
.forEach { println(it.speed)}

方法定义

  • Java
      
      
1
2
3
4
5
6
7
      
      
void () {
?? // logic here
}
void (int... numbers) {
// logic here
}
  • Kotlin
      
      
1
2
3
4
5
6
7
      
      
fun () {
?? // logic here
}
fun (vararg numbers: Int) {
// logic here
}

带返回值的方法

  • Java
      
      
1
2
3
4
      
      
int getScore() {
?? // logic here
?? return score;
}
  • Kotlin
      
      
1
2
3
4
5
6
7
8
      
      
fun getScore(): Int {
?? // logic here
?? return score
}
// as a single-expression function
fun getScore(): Int = score

无结束符号

  • Java
      
      
1
2
3
4
      
      
int getScore(int value) {
? ? // logic here
? ? return 2 * value;
}
  • Kotlin
      
      
1
2
3
4
5
6
7
8
      
      
fun getScore(value: Int): Int {
?? // logic here
?? return 2 * value
}
// as a single-expression function
fun getScore(value: Int): Int = 2 * value

constructor 构造器

  • Java
      
      
1
2
3
4
5
6
7
8
9
10
11
      
      
public class Utils {
? ? private Utils() {?
? ? ? // This utility class is not publicly instantiable?
? ? }
?? ?
? ? public static int getScore(int value) {
? ? ? ? return 2 * value;
? ? }
?? ?
}
  • Kotlin
      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
      
      
class Utils private constructor() {
? ? companion object {
?? ?
? ? ? ? fun getScore(value: Int): Int {
? ? ? ? ? ? return 2 * value
? ? ? ? }
?? ? ? ?
? ? }
}
// other way is also there
object Utils {
? ? fun getScore(value: Int): Int {
? ? ? ? return 2 * value
? ? }
}

Get Set 构造器

  • Java
      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
      
      
public class Developer {
? ? private String name;
? ? private int age;
? ? public Developer(String name,int age) {
? ? ? ? this.name = name;
? ? ? ? this.age = age;
? ? }
? ? public String getName() {
? ? ? ? return name;
? ? }
? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }
? ? public int getAge() {
? ? ? ? return age;
? ? }
? ? public void setAge(int age) {
? ? ? ? this.age = age;
? ? }
? ?
? ? public boolean equals(Object o) {
? ? ? ? if ( this == o) return true;
? ? ? ? if (o == null || getClass() != o.getClass()) return false;
? ? ? ? Developer developer = (Developer) o;
? ? ? ? if (age != developer.age) return false;
? ? ? ? return name != null ? name.equals(developer.name) : developer.name == null;
? ? }
? ?
? ? public int hashCode() {
? ? ? ? int result = name != null ? name.hashCode() : 0;
? ? ? ? result = 31 * result + age;
? ? ? ? return result;
? ? }
? ?
? ? public String toString() {
? ? ? ? return "Developer{" +
? ? ? ? ? ? ? ? "name='" + name + ''' +
? ? ? ? ? ? ? ? ",age=" + age +
? ? ? ? ? ? ? ? '}';
? ? }
}
  • Kotlin
      
      
1
      
      
data class Developer( val name: String,val age: Int)
  • Java
      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
      
      
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
      
      
1
2
3
4
5
      
      
fun Int.triple(): Int {
? return this * 3
}
var result = 3.triple()

你需要知道一些比较重要的事

  • Learn Kotlin - lateinit vs lazy
  • Learn Kotlin - apply vs with
  • Learn Kotlin - 定义实体对象
  • [Learn Kotlin - 声明式解构(https://mindorks.com/blog/learn-kotlin-destructuring-declarations)
  • [Learn Kotlin - Sealed Classes](https://mindorks.com/blog/learn-kotlin-sealed-classes

如果你觉得这个项目对你有帮助 :heart:

  • 你可以通过点击 :star:表示支持 :v:

Check out Mindorks awesome open source projects here

License

      
      
1
2
3
4
5
6
7
8
9
10
11
12
13
      
      
?? Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED
?? Licensed under the Apache License,Version 2.0 (the "License");
?? you may not use this file except in compliance with the License.
?? You may obtain a copy of the License at
?? ? ? http://www.apache.org/licenses/LICENSE-2.0
?? Unless required by applicable law or agreed to in writing,software
?? distributed under the License is distributed on an "AS IS" BASIS,
?? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied.
?? See the License for the specific language governing permissions and
?? limitations under the License.

原文:大专栏 ?从java到Kotiln

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读