簡體   English   中英

什么可以用作 Kotlin 中 Object 的替代品?

[英]what can be used as an alternative to Object in Kotlin?

我正在編寫以下 Kotlin 代碼,但是在編譯時出現錯誤

Null can not be a value of a non-null type ByteArray這是我的代碼

fun myKafkaProducer(): MessageBusProducer<UUID?, Any>? {
         return if (serverProperties().isWAPKafkaSet) {
            val uuidSerializer = UUIDSerializer()
            val uuidDeserializer = UUIDDeserializer()
            val topic = serverProperties().hmsTopic
            val serializer = KafkaProperties.Serializers(Function<UUID, ByteArray> { uuid: UUID? -> uuidSerializer.serialize(null, uuid) }, label@ Function<Any, ByteArray> { sapMessage: Any ->
                try {
                    return@label ObjectMappers.getObjectMapper().writeValueAsString(sapMessage).toByteArray()
                } catch (e: JsonProcessingException) {
                    e.printStackTrace()
                }
                null /*showing error here */
            }, null,
                    null
            )
            // set WapKafkaHostPortAddress in env (configuration repo)

           return KafkaMessageBusProducerFactory.Builder<UUID, Any>()
                    .kafkaAddressPropertyName("portAddress")
                    .topic(topic)
                    .messageBusTypeSerializers(serializer)
                    .build().create(true)

        } else {
           return null
        }
    }

我正在嘗試編寫相當於 Serializers<UUID, Object> 的代碼

我可以使用什么其他數據類型?

Kotlin 中Object的等價物是Any? . 只有這樣你才能返回空值,因為類型Any是不可空的,而Any? 可以為空。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM