Java 什么可以作为Kotlin中对象的替代品?
我正在编写以下Kotlin代码,但编译时会出现错误Java 什么可以作为Kotlin中对象的替代品?,java,kotlin,Java,Kotlin,我正在编写以下Kotlin代码,但编译时会出现错误 Null不能是ByteArray类型的非Null值 这是我的密码 fun myKafkaProducer(): MessageBusProducer<UUID?, Any>? { return if (serverProperties().isWAPKafkaSet) { val uuidSerializer = UUIDSerializer() val uuidDe
Null不能是ByteArray类型的非Null值
这是我的密码
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
}
}
fun myKafkaProducer():MessageBusProducer?{
返回if(serverProperties().isWAPKafkaSet){
val uuidSerializer=uuidSerializer()
val uuidDeserializer=uuidDeserializer()
val topic=serverProperties().hmsTopic
val serializer=KafkaProperties.serializer(函数{uuid:uuid?->uuidSerializer.serialize(null,uuid)},标签@Function{sapMessage:Any->
试一试{
return@labelObjectMappers.getObjectMapper().writeValueAsString(sapMessage.toByteArray())
}catch(e:JsonProcessingException){
e、 printStackTrace()
}
null/*此处显示错误*/
},空,
无效的
)
//在环境中设置WapKafkaHostPortAddress(配置repo)
返回KafkaMessageBusProducerFactory.Builder()
.kafkaAddressPropertyName(“portAddress”)
.主题(topic)
.MessageBustTypeSerializer(序列化程序)
.build().create(true)
}否则{
返回空
}
}
我正在尝试编写与序列化程序等效的代码
我还可以使用什么其他数据类型?Kotlin中的
Object
的等效类型是Any?
。只有这样才能返回null,因为类型Any
不可为null,并且Any?
可以为null