последовательность
Эта статья в основном приводит несколько примеров того, как Kotlin может улучшить код Java
Струнные литералы и шаблоны
Строковое буквальное значение
@Test Fun TestStringLiterals () {val a = "" "if (a> 1) {| return a |}" "".С помощью струнных литералов вам не нужно делать столько усилий, чтобы размирать строки, если вы пишете SQL.
Струнный шаблон
@Test Fun TestStringTemplate () {val name = "hello kotlin" println ("Привет, $ name!"); Val Data = Listof (1,2,3) println ("Привет, $ {data [0]}!")}Этот шаблон струн еще более мощный, эквивалентный встроенному фримаркеру, и ему не нужно передавать значения переменных вручную
Получите текущий индекс в цикле FO
@Test Fun TestForeAChinDex () {val items = listof ("Apple", "banana", "kiwifruit") для (index in intes.indices) {println ("Item в $ index is {index]}")}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}В Java, если вы хотите получить индекс для каждого цикла, вы должны объявить индекс снаружи и посчитать его самостоятельно. Это слишком неловко
класс данных
// Сгенерировать getter/setter, equals, hashcode, tostring, copy и т. Д. // Setter имеет только класс данных Customer (val name: string, val email: string) @test fun testdataclass () {val customer = customer ("admin", "[email protected]") println (customer)}}}}}}}}}}}}}}}} Java всегда объявляет Getter/Setter. Преимущество заключается в том, что вы можете найти эти методы в IDE, которые вызывают Getter/Setter;
Хотя Lombok может автоматически генерировать Getter/Setter, а аннотация @Data также может генерировать равенные/хэшкодные методы, Lombok не удобен для поиска этих методов в IDE, которые вызывают Getter/Setter; Класс данных Котлина помогает вам решить эти проблемы
Нулевая безопасность
@Test Fun testifnotnull () {val files = file ("test"). ListFiles () println (файлы?Эта нулевая безопасность настолько полезна, что она немного кратко, чем тройное выражение Java. Когда выражение верно, вам не нужно повторять контент, который будет возвращен, просто напишите часть.
Нулевая безопасность более полезна при потоковой/прикованной вызовах
// Если один из `person` или` person.department` пуст, функция не будет называться: человек?
краткое содержание
В этой статье приведены только несколько примеров котлина, которые могут улучшить код Java. Котлин слишком мощный, и цель - заменить Java. Многие из дизайнов могут видеть тень Scala, но есть также много черной магии, и кривая обучения немного встряхивает, но это нормально, если вы не используете слишком продвинутую грамматику.
Связанная ссылка: https://www.kotlincn.net/docs/reference/