龙目岛的泛型类型字段@Builder错误



我在使用Lombok的@Builder注释创建POJO并在运行时将其映射到预期类型时遇到问题。

这是我的代码:

OperationResult.java

import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class OperationResult<D>
{
private D data;
}

OperationResultTest.java

import org.junit.jupiter.api.Test;
public class OperationResultTest
{
@Test
public void testGenerics()
{
OperationResult<String> restult = OperationResult.builder()
.data("Test")
.build();
}
}

这会导致编译错误,说明返回的类型为OperationResult<Object>,并且无法强制转换为预期的OperationResult<String>类型。

是否可以使用泛型并使用Lombok的@Builder注释知道返回的类型?

谢谢你的帮助!

要解决编译错误,您应该在调用builder()方法时定义泛型,如下所示:

OperationResult<String> result = OperationResult.<String>builder()
.data("Test")
.build(); 

最新更新