我有以下Java代码,我想将其转换为Kotlin:
class RideHistoryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
class HistoryItemHolder extends RecyclerView.ViewHolder {
private static final int TYPE_IN_PROGRESS = 1
private static final int TYPE_CANCELLED = 2
private static final int TYPE_FINISHED = 3
// class methods and properties are written
}
}
我想出了以下代码:
class RideHistoryAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private inner class HistoryItemHolder(view: View)
: RecyclerView.ViewHolder(view) {
private companion object {
private const val TYPE_IN_PROGRESS = 1
private const val TYPE_CANCELLED = 2
private const val TYPE_FINISHED = 3
// class methods and properties are written
}
}
}
Android Studio正展示着一个红色的“对象”下方歪歪扭扭的行伴侣对象
,上面写着:
此处不允许同伴对象
注意:我知道我可以将它转换为非内部类,但我更愿意保留它一个。我还检查了我不能在内部类中定义接口。
首先,您的Java是无效的。如果修复了它,则会得到一个错误:内部类不能具有静态声明
内部类中不能有伴生对象,原因与java中的内部类中不能有static
成员相同
https://docs.oracle.com/javase/tutorial/java/javao/nested.html:
与实例方法和变量一样,内部类与其封闭类的实例相关联,并可以直接访问该对象的方法和字段。此外,由于内部类与实例关联,因此它本身不能定义任何静态成员。
(由我突出显示)
val
(类似于final
)。HistoryItemHolder
不是内部类。问题内容: 假设您需要定义一个仅包含常量的类。 这样做的首选方式是什么? 接口 抽象类 最终班 我应该使用哪一个?为什么? 澄清一些答案: 枚举 -我将不使用枚举,我不会枚举任何东西,只是收集一些彼此不相关的常量。 接口 -我不会将任何类设置为实现该接口的类。只是想使用该接口来调用常量,例如:。 问题答案: 使用期末课程。为简单起见,您可以使用静态导入在另一个类中重用您的值 在另一堂课中:
骡子流曰: HTTP和CXF组件公开了给出两个整数之和的web服务。发送入请求的对象为: 公共类AddValues{private int a;private int b;public setA(int a){this.a=a;}public getA(){return a;}public setB(int b){this.b=b;}public getB(){return b;}} 有人能建议一
问题内容: 我已经看到了几个与Java中类似的示例,希望有人可以解释发生了什么。似乎可以内联定义一个新类,这对我来说真的很奇怪。 第一行是预期的输出行,因为它只是toString。但是第二似乎函数可以内联重写。 为此有技术术语吗? 还是任何更深入的文档? 如果我有以下代码: 代码输出: 问题答案: 它是一个匿名内部类。您可以在Java文档内部类链接中找到有关它的更多信息。 编辑 我正在添加一个更好
问题内容: 很简单,我正在学习Python,但是找不到可以告诉我如何编写以下内容的参考: 后来: 这是一个具有以下属性的班级团队:名称/徽标/成员 编辑 经过几次尝试,我得到了: 后来 这是Python方式吗?感觉很奇怪(当然来自强类型语言)。 问题答案: 在Python中,通常不编写getter和setter,除非您确实为它们提供了一个简单的实现(此时使用属性描述符)。
问题内容: 我想创建一个类,作为的内部类,但是我想写下外部文件。 我怎样才能做到这一点? 这将是很多内部类,而文件将是 巨大的 。 更新 我真正想做的是定义十个类,它们只能由一个类访问。所有这些都在同一包内定义。 谢谢。 问题答案: 将所有类放入包中,并将这些类定义为包私有。 注意没有关键字吗?如果创建类Hello的实例在包中,则您将只能创建该实例的实例。
我只是想学习Angular 2(特别是Angular 8),就我的一生而言,我不明白为什么类变量在类函数中是“未定义”的,但如果我用ES6风格编写函数,它是可以访问的。 我尝试在构造函数中设置,但这没有意义。 一旦调用HandleClickStart,每1.5秒输出一次NaN。为什么????我本以为是1 2 3...... 通过这种方式实现handleClickStart,可以获得预期的结果: 但