class SecondActivity: BaseActivity() {
// ...
companion object {
fun actionStart(context: Context, data1: String, data2 : String) {
val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("param1", data1)
intent.putExtra("param2", data2)
context.startActivity(intent)
}
}
// ...
}
fun num1AndNum2(num1: Int, num2: Int, operation: (Int, Int) -> Int): Int {
return operation(num1, num2)
}
fun plus(num1: Int, num2: Int) : Int {
return num1 + num2
}
fun minus(num1: Int, num2: Int) : Int {
return num1 - num2
}
fun StringBuilder.build(block: StringBuilder.() -> Unit) : StringBuilder {
block()
return this
}
val res1 = num1AndNum2(num1, num2, ::plus)
val res2 = num1AndNum2(num1, num2, ::minus)
val res3 = num1AndNum2(num1, num2) {n1, n2 ->
n1 + n2
}
class MySet<T>(val helperSet: HashSet<T>): Set<T> by helperSet {
override fun isEmpty(): Boolean {
return false
}
}
class MyClass {
var p by Delegate()
}
class Delegate {
var propValue: Any? = null
operator fun getValue(myClass: MyClass, prop: KProperty<*>): Any? {
return propValue
}
operator fun setValue(myClass: MyClass, prop: KProperty<*>, value: Any?) {
propValue = value
}
}
val list2 = listOf<String>("apple", "banana")
infix fun <T> Collection<T>.has(element: T) = contains(element)
if (list2 has "apple") {
println("list have apple")
}
inline fun <reified T> getGenericType() = T::class.java
val res1 = getGenericType<String>()
class SimpleData<out T>(val data: T?) {
fun get(): T? {
return data
}
}
interface TransFormer<in T> {
fun transform(t: T): String
}