首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找正确的kotlinpoet语法来初始化IntArrays和Array<String>值的PropertySpec.Builder

寻找正确的kotlinpoet语法来初始化IntArrays和Array<String>值的PropertySpec.Builder
EN

Stack Overflow用户
提问于 2019-07-02 06:51:31
回答 1查看 515关注 0票数 0

在项目中看不到用于将数组类型初始化为现有类型的值的正确语法,基元类型工作正常,程序员定义的类

代码语言:javascript
复制
Target(
    AnnotationTarget.FIELD,
    AnnotationTarget.PROPERTY_GETTER,
    AnnotationTarget.VALUE_PARAMETER,
    AnnotationTarget.PROPERTY)
    @Retention(AnnotationRetention.SOURCE)

注释类ConfigurableIntArray( val key: String,val text: String,val description: String,val initialValue: IntArray )

代码语言:javascript
复制
Class BlockAnnotationTester2(@field:ConfigurableIntArray(
    key = UIComponentSettings.MAXIMUM_LENGTH_KEY,
    text = UIComponentSettings.MAXIMUM_LENGTH_TEXT,
    description = UIComponentSettings.MAXIMUM_LENGTH_DESCRIPTION,
    initialValue = [2]) 
val unusedIntArray: IntArray = intArrayOf(1, 2, 3, 4),

 for (data in memberDataIntArray)...`
addProperty( 
                  PropertySpec.builder(TestAnnotationProcessor.INITIAL_VALUE, IntArray::class) 

                        .initializer("intArrayOf(${data.annotation.initialValue.asList()})")
                        .build()
                ) 
   object Member_BlockAnnotationTester2UnusedIntArray {

    const val KEY: String = 
    "configurable_block_detail_ui_component_maximum_length"

    const val TEXT: String = "Maximum length"

    var INITIAL_VALUE: IntArray = intArrayOf([2]) <-- issue 

const val DESCRIPTION: String = "Maximum length of the corresponding UI 
component"
}

只能将其初始化为纯文本文本或第一个值中的静态数据

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-03 08:27:37

我猜还有一种更简单的方法,但这种方法奏效了

代码语言:javascript
复制
.initializer("%L", buildCodeBlock {
                                var lregex = 
    data.annotation.initialValue.asList().toString()
                                lregex = lregex.replace("["," ")
                                lregex = lregex.replace("]"," ")
                                add("intArrayOf($lregex)")
                            })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56843358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档