Kotlin调用java的get方法

1,095 阅读1分钟
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)属性