问题描述
我将转储的任何部分转换为Kotlin界面以进行访问:
interface Idumpdata {
// block 0
val id: UInt
get() = blocks[0].getUIntAt(0)
val crc: UByte
get() = blocks[0][4].toUByte()
//unsigned char unused_0[11];
// block 60
val version: UShort
get() = blocks[60].getUShortAt(0)
val type: UByte
get() = blocks[60][2].toUByte()
val data1: UInt
get() = blocks[60].getUIntAt(2 + 1)
val data2: UShort
get() = blocks[60].getUShortAt(2 + 1 + 4)
val data3: UShort
get() = blocks[60].getUShortAt(2 + 1 + 4 + 2)
val data4: UShort
get() = blocks[60].getUShortAt(2 + 1 + 4 + 2 + 2)
val size: UShort
get() = blocks[60].getUShortAt(2 + 1 + 4 + 2 + 2 + 2)
//unsigned char unused_60;
var blocks: Array<ByteArray>// Array(64) { ByteArray(16) }
}
如何创建一个Kotlin注释类,该类根据字段位置和字段类型自动设置getter和setter? 这样最终看起来像这样:
@DumpToClass
interface Idumpdata {
// block 0
@Block(0) val id: UInt
@Block(0) val crc: UByte
//unsigned char unused_0[11];
// block 60
@Block(60) val version: UShort
@Block(60) val type: UByte
@Block(60) val data1: UInt
@Block(60) val data2: UShort
@Block(60) val data3: UShort
@Block(60) val data4: UShort
@Block(60) val size: UShort
//unsigned char unused_60;
var blocks: Array<ByteArray>// Array(64) { ByteArray(16) }
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)