将代码从Java更改为Kotlin后,注释未正确转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将代码从Java更改为Kotlin后,注释未正确转换相关的知识,希望对你有一定的参考价值。
将一些Java代码转换为Kotlin(以创建ReplacementSpan)后,将返回与注释相关的错误。
from
构造函数中的@IntRange(from = 0)
返回错误:
'IntRange'不是注释类|找不到具有此名称的参数:from
import android.graphics.Canvas
import android.graphics.Paint
import sun.swing.SwingUtilities2.drawRect
import android.text.style.ReplacementSpan
class HrSpan : ReplacementSpan() {
override fun getSize(
paint: Paint, text: CharSequence, @IntRange(from = 0) start: Int,
@IntRange(from = 0) end: Int, fm: Paint.FontMetricsInt?
): Int {
return 0
}
override fun draw(
canvas: Canvas, text: CharSequence, @IntRange(from = 0) start: Int,
@IntRange(from = 0) end: Int, x: Float, top: Int, y: Int, bottom: Int,
paint: Paint
) {
canvas.drawRect(x, top.toFloat(), y.toFloat(), (top + 8).toFloat(), paint)
}
}
答案
Kotlin将自己的IntRange
类与Android SDK的IntRange
注释混淆。
进行类似的导入,给它另一个名字:
import android.support.annotation.IntRange as AndroidIntRange
并像这样使用它:
fun foo(@AndroidIntRange(from = 0, to = 255) bar: Int) {
}
以上是关于将代码从Java更改为Kotlin后,注释未正确转换的主要内容,如果未能解决你的问题,请参考以下文章
将数据库从 MySQL 更改为 SQLite 后出现 Java 项目错误