순서
이 기사는 주로 Kotlin이 Java 코드를 개선 할 수있는 방법에 대한 몇 가지 예를 제시합니다.
문자열 리터럴 및 템플릿
문자열 문자 값
@Test Fun TestStringLiterals () {val a = "" ""if (a> 1) {| return a |} "" "". trinmargin () println (a) val b = "" "foo bar" ". trimindent () println (b)}문자 리터럴을 사용하면 SQL을 쓰면 문자열을 스플 라이스하기 위해 많은 노력을 기울일 필요가 없습니다.
문자열 템플릿
@test fun teststringtemplate () {val name = "hello kotlin"println ( "hello, $ name!"); val data = listof (1,2,3) println ( "hello, $ {data [0]}!")}이 문자열 템플릿은 훨씬 더 강력하고 내장 프리 마커와 동일하며 변수 값을 수동으로 전달할 필요가 없습니다.
for 루프에서 현재 인덱스를 가져옵니다
@test fun testforeachIndex () {val items = listof ( "apple", "banana", "kiwifruit") for (index.indices) {println ( "$ index at $ {items [index]}")}}.Java에서는 각 루프에 대한 인덱스를 얻으려면 외부 인덱스를 선언하고 직접 계산해야합니다. 너무 어색합니다
데이터 클래스
// Getter/Setter, Equals, Hashcode, Tostring, Copy 등을 생성하십시오. // Setter는 데이터 클래스 고객 (Val Name : String, Val 이메일 : String) @test fun testdataclass () {val customer = customer ( "admin", "[email protected]") println (customer)}가 있습니다. Java는 항상 Getter/Setter를 선언합니다. 장점은 Getter/Setter를 호출하는 IDE에서 이러한 방법을 찾을 수 있다는 것입니다.
Lombok은 자동으로 Getter/Setter를 생성 할 수 있지만 @Data 주석은 동일한/Hashcode 메소드를 생성 할 수 있지만 Lombok은 IDE에서 해당 메소드를 찾는 데 편리하지 않으며 Getter/Setter를 호출합니다. Kotlin의 데이터 클래스는 이러한 문제를 해결하는 데 도움이됩니다
널 안전
@test fun revelifnotnull () {val files = file ( "test"). listfiles () println (파일?이 null 안전성은 매우 유용하며 Java의 3 배 표현보다 약간 간결합니다. 표현이 참이면 반환 할 내용을 반복 할 필요가 없으며 다른 부분을 작성하십시오.
널 안전은 스트리밍/체인 호출시 더 유용합니다
//`person` 또는`person.department '중 하나가 비어 있으면, 함수는 호출되지 않습니다 : person? .department? .head = managerspool.getmanager ()
요약
이 기사는 Java 코드를 개선 할 수있는 Kotlin의 몇 가지 예만 제공합니다. Kotlin은 너무 강력하고 목표는 Java를 대체하는 것입니다. 많은 디자인은 스칼라의 그림자를 볼 수 있지만 많은 흑 마술도 많으며 학습 곡선은 약간 흔들리지만 너무 고급 문법을 사용하지 않으면 괜찮습니다.
관련 참조 : https://www.kotlincn.net/docs/reference/