【发布时间】:2021-02-23 21:19:35
【问题描述】:
我有一个类有一个获取Serializer 的字段。 valueSelializer 将接受一个以SpecificRecordBase 作为参数的序列化器类。
@Builder
@Data
public class FactoryProperties<T extends SpecificRecordBase> {
private Serializer<?> keySerializer;
private Serializer<T> valueSerializer;
}
但是当我创建一个输入默认值的方法时
public <T extends SpecificRecordBase> FactoryPropertiesBuilder<T> defaultFactoryProperties(
Class<T> targetType) {
return FactoryProperties.builder()
.keySerializer(new StringSerializer())
.valueSerializer(new MySerializer<T>());
}
public class MySerializer<T extends SpecificRecordBase> implements Serializer<T>
我遇到错误说Type mismatch: cannot convert from FactoryProperties.FactoryPropertiesBuilder<SpecificRecordBase> to FactoryProperties.FactoryPropertiesBuilder<T>
根据我的理解T 已经是SpecificRecordBase。有人可以告诉我代码和逻辑有什么问题吗?
【问题讨论】:
-
FactoryProperties.builder<T>()工作吗? -
@dan1st 尝试添加它,它给了我一个错误
Syntax error on token "(", Expression expected after this token
标签: java generics serialization