You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中如何自定义等效于固定参数@FloatRange的注解别名?

Kotlin自定义注解问题解答

1. 注解自定义支持情况

Kotlin原生支持自定义注解,不需要额外扩展能力即可实现你的需求。

2. 实现@NormalizedRange等价注解的方案

你要的固定参数别名注解可以通过注解嵌套的方式实现,和直接使用@FloatRange(from = 0.0, to = 1.0)效果完全一致,代码示例如下(以AndroidX提供的@FloatRange为例):

import androidx.annotation.FloatRange
import kotlin.annotation.AnnotationRetention.BINARY
import kotlin.annotation.AnnotationTarget.*

// 限定注解的使用场景,和FloatRange支持的场景保持一致即可
@Target(
    FUNCTION,
    PROPERTY_GETTER,
    PROPERTY_SETTER,
    VALUE_PARAMETER,
    FIELD,
    LOCAL_VARIABLE
)
// 保留到编译期即可,和原生FloatRange的保留策略一致
@Retention(BINARY)
// 固定FloatRange的参数
@FloatRange(from = 0.0, to = 1.0)
annotation class NormalizedRange

3. 效果说明

  • 上述实现的@NormalizedRange会被Lint等编译检查工具完全识别,和直接写带参数的@FloatRange没有功能差异
  • 如果你的使用场景是运行时读取注解,只需要在自定义注解处理器、AOP逻辑中补充@NormalizedRange到固定参数@FloatRange的映射规则即可

内容的提问来源于stack exchange,提问作者Nickolas Konstantakop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:45:04