一.数据类
data class User(val name: String, val age: Int)
fun main(args: Array<String>) {
val user = User("张三",18)
val newUser = user.copy(age = 19)
print(newUser.toString())
}
//数据
data class User(val name: String, val age: Int)
二.泛型
class Box<T>(t: T) {
var value = t
public interface Collection<E> extends Iterable<E> {
boolean addAll(Collection<? extends E> c);
}
public interface Collection<E> extends Iterable<E> {
boolean addAll(Collection<E> c);
}
//JAVA
interface Source<T> {
T nextT();
}
abstract class Source<out T> {
abstract fun next(): T
}
fun Test(str: Source<String>) {
var objects: Source<Any> = str
}
abstract class Comparable<in T> {
abstract fun compareTo(other: T): Int
}
fun demo(x: Comparable<Number>) {
x.compareTo(1.0) // 1.0 拥有类型 Double,它是 Number 的⼦类型
// 因此,我们可以将 x 赋给类型为 Comparable <Double> 的变量
val y: Comparable<Double> = x // OK!
}
三.嵌套类与内部类
fun main(args: Array<String>) {
val test = TestClass.OutTest().b()
print(test)
}
class TestClass {
private val a: Int = 5
class OutTest {
fun b() = 1;
}
class Outer {
private val bar: Int = 1
inner class Inner {
fun foo() = bar
}
}
// == 1
val demo = Outer().Inner().foo()
enum class K{
ONE,TWO,THREE,FOUR,FIVE
}
val k = K.ONE
fun main(args: Array<String>) {
val k = K.FOUR
print(k.number)
}
enum class K(val number:Int){
ONE(1),TWO(2),THREE(3),FOUR(4),FIVE(5)
}
fun main(args: Array<String>) {
val h = H.ONE.signal()
print(h)
}
enum class H() {
ONE {
override fun signal() = TWO
},
TWO {
override fun signal() = ONE
};
abstract fun signal(): H
}
//JAVA
window.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
}
//Kotlin
val window: Window? = null
if (window != null) {
window.addMouseListener(object : MouseAdapter() {
override fun mouseClicked(e: MouseEvent?) {
}
override fun mouseEntered(e: MouseEvent?) {
}
})
https://github.com/LiuGuiLinAndroid/Kotlin
强烈推荐我的慕课网新课
Android X/音视频开发/社交匹配算法/即时通信/语音识别/App优化/安全加固
点击阅读原文直达或点击下方地址查看详情: