The document provides code examples comparing Java and Kotlin implementations of common programming concepts and patterns. It shows how Kotlin simplifies concepts like listeners, constructors, properties, and null safety checks compared to Java.
37. // Read-write
var a: Int = 0
var b: String? = null
var c = "Kotlin"
var d = User()
lateinit var c: Int
// Read-only
val pi = 3.14
val d = User()
const val pi = 3.14
43. public class User {
private String name;
private int age;
public User(String n, int a) {
name = n;
age = a;
}
public int getName() {
return name;
}
public int getAge() {
return age;
}
}
class User(
val name: String,
val age: Int)
44.
45. // Java
private static final String BUNDLE_GET_STRING =
"bundle:str";
public static SampleFragment newInstance(String name) {
SampleFragment fragment = new SampleFragment();
Bundle bundle = new Bundle();
bundle.putString(BUNDLE_GET_STRING name);
fragment.setArguments(bundle);
return fragment;
}
46. // Kotlin
companion object {
private const val BUNDLE_GET_STRING = "bundle:str"
fun newInstance(name: String?): SampleFragment {
val fragment = SampleFragment()
val bundle = Bundle()
bundle.putString(BUNDLE_GET_STRING, name)
fragment.arguments = bundle
return fragment
}
}
69. Run fun <T, R> T.run(block: T.() -> R): R = block()
With fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()
Apply fun <T> T.apply(block: T.() -> Unit): T = { block(); return this }Also
Also fun <T> T.also(block: (T) -> Unit): T = { block(this); return this }
Let fun <T, R> T.let(block: (T) -> R): R = block(this)
86. val iterator = (1..3).iterator()
// skip an element
if (iterator.hasNext()) {
iterator.next()
}
// do something with the rest of elements
iterator.forEach {
println("The element is $it")
}
93. $
// Java
println("a = " + a + "b = " + b + "c = " + c)
// Kotlin
println("a = $a, b = $b, c = $c")
94. // Java
String[] member = {"Cherprang", "Music", "Pun", "Jennis"};
// Kotlin
var member = arrayOf("Cherprang", "Music", "Pun", "Jennis")
mapOf(KEY to "value")
listOf(KEY to "value")