【发布时间】:2017-10-18 23:38:59
【问题描述】:
请注意:我是凭记忆写的,所以我可能有些概念不正确。
Java 具有编写匿名函数的能力。当您有某种事件的侦听器接口时,这很有用。举个例子:
button.setOnClickListener(new View.OnClickListener(View v) {
@Override
public void onClick(View v) {
// handle the action here
}
});
匿名侦听器将被编译为类似OnClickListener$1.class 的类。这是 Java 语言的底层设计决策。一切都是对象,甚至是匿名函数。
当您想要编写功能更强大的代码库时,这会成为一个问题。大量匿名类会产生大量类数,这在 Android 等受限平台上可能会成为问题。
从源代码的角度来看,Kotlin 中的函数更加一流。我的问题是,Kotlin 将这些函数编译成字节码是否比 Java 对匿名类更有效,还是我会遇到与 Java 中的大类计数相同的问题?
谢谢,
【问题讨论】: