Kotlin 调用java的get方法
getter方法:
在Kotlin中,属性是默认有getter方法的,调用的时候可以直接用属性就行。
所以对于java中的getXX方法,均认为存在属性XX,所以调用的时候,通常直接用getXX后面的字符作为属性名称。
比如Android开发中经常见到这种写法:
Java
FragmentAdapter(getSupportFragmentManager(), getLifecycle(), fragments)
homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
Kotlin
FragmentAdapter(supportFragmentManager, lifecycle, fragments)
homeViewModel.text.observe(viewLifecycleOwner, Observer {
textView.text = it
})
**引用Kotlin语言中文站的原话:**
Getter 和 Setter
`遵循 Java 约定的 getter 和 setter 的方法(名称以 get 开头的无参数方法和以 set 开头的单参数方法)在 Kotlin 中表示为属性。 Boolean 访问器方法(其中 getter 的名称以 is 开头而 setter 的名称以 set 开头)会表示为与 getter 方法具有相同名称的属性。`例如:
import java.util.Calendar
fun calendarDemo() {
val calendar = Calendar.getInstance()
if (calendar.firstDayOfWeek == Calendar.SUNDAY) { // 调用 getFirstDayOfWeek()
calendar.firstDayOfWeek = Calendar.MONDAY // 调用ll setFirstDayOfWeek()
}
if (!calendar.isLenient) { // 调用 isLenient()
calendar.isLenient = true // 调用 setLenient()
}
}
请注意,如果 Java 类只有一个 setter,它在 Kotlin 中不会作为属性可见,因为 Kotlin 目前不支持只写(set-only)属性。