Kotlin自定义LinearLayout子类转Java,写法是否正确?
你的Java实现完全正确
Kotlin和Java在类继承的构造写法上只是语法形式不同,本质逻辑完全一致:
- Kotlin中
class temp(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs)这段代码,是在类声明时直接调用父类LinearLayout的(Context, AttributeSet)构造函数完成父类初始化。 - 而Java中要求在子类构造函数的第一行通过
super(context, attrs)显式调用父类对应构造函数,你写的代码正好做到了这一点,和Kotlin版本的逻辑完全匹配。
另外你实现tempInterface的写法也没问题,Java用implements关键字,和Kotlin里用逗号分隔接口的写法是等价的。
Kotlin原代码
class temp(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs), tempInterface { // ... 类内容 }
你的Java实现
public class temp extends LinearLayout implements tempInterface { // ... 类内容 public temp(Context context, AttributeSet attrs) { super(context, attrs); } // ... 类内容 }
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

