>

일부 Java 코드를 Kotlin으로 변환 한 후 (ReplacementSpan 생성) 주석 관련 오류가 반환됩니다.

from   @IntRange(from = 0) 에서  생성자가 오류를 반환합니다 :

'IntRange' is not an annotation class | Cannot find a parameter with this name: 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)
    }
}


  • 답변 # 1

    Kotlin은 자체 IntRange 를 혼동합니다   IntRange 수업  Android SDK의 주석.

    다른 이름으로 가져 오기 :

    import android.support.annotation.IntRange as AndroidIntRange
    
    

    다음과 같이 사용하십시오 :

    fun foo(@AndroidIntRange(from = 0, to = 255) bar: Int) {
    }
    
    

  • 이전 c# - 모듈 식 아키텍처를 설계해야 할 때 객체 캐스팅이 불가피한 현실입니까?
  • 다음 recursion - 자바 스크립트에서 바이너리로 어떻게 변환합니까? 재귀 함수가 각 호출에서 한 번에 데이터를 반환하는 방법은 무엇입니까?