Byo*_*ob 4 java generics lombok
我在使用 Lombok 注释创建 POJO@Builder并使其在运行时映射到预期类型时遇到问题。
这是我的代码:
操作结果.java
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class OperationResult<D>
{
private D data;
}
Run Code Online (Sandbox Code Playgroud)
操作结果测试.java
import org.junit.jupiter.api.Test;
public class OperationResultTest
{
@Test
public void testGenerics()
{
OperationResult<String> restult = OperationResult.builder()
.data("Test")
.build();
}
}
Run Code Online (Sandbox Code Playgroud)
这会导致编译错误,指出返回的类型是OperationResult<Object>且无法转换为预期类型OperationResult<String>。
是否可以使用泛型并使用 Lombok 的@Builder注释了解返回的类型?
感谢您的帮助!
要解决编译错误,您应该在调用方法时定义泛型,builder()如下所示:
OperationResult<String> result = OperationResult.<String>builder()
.data("Test")
.build();
Run Code Online (Sandbox Code Playgroud)