問題
相信大家很多時(shí)候都有用到匿名內(nèi)部類,完成一些操作邏輯;例如:網(wǎng)絡(luò)數(shù)據(jù)回調(diào)、開啟子線程、刷新UI等;
使用原生java開發(fā)很方便,就是直接new個(gè)對(duì)象,實(shí)現(xiàn)/重寫必要的函數(shù);但是在kotlin中是不支持直接實(shí)例化抽象類的。
例如:
abstarct class TestClass implements Runnable{
public void test(){}
}
原生java實(shí)現(xiàn)
new Thread(new TestClass(){
public void run(){
}
}).start();
kotlin實(shí)現(xiàn)(錯(cuò)誤的)
Thread(TestClass(){
override fun run() {
}
override fun test() {
super.test()
}
}).start()
kotlin的解決方法:(主要是object關(guān)鍵字的使用)
Thread(object: TestClass(){
override fun run() {
}
override fun test() {
super.test()
}
}).start()
備注:Kotlin文檔中的解釋http://kotlinlang.org/docs/reference/object-declarations.html
標(biāo)題名稱:Kotlin中的使用技巧
瀏覽地址:
http://weahome.cn/article/ipchgc.html