父類
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ParentClass {public String name;
}
子類
@AllArgsConstructor
@NoArgsConstructor
@Data
@SuperBuilder
public class ChildClass<T> extends ParentClass {private T value;
}
提示錯誤
'builder()' in 'com.zl.test_pro.builder.ChildClass' clashes with 'builder()' in 'com.zl.test_pro.builder.ParentClass'; both methods have same erasure, yet neither hides the other
即出現了類型擦除?
解決
子類自定義builder方法
@AllArgsConstructor
@NoArgsConstructor
@Data
@SuperBuilder(builderMethodName = "childBuilder")
public class ChildClass<T> extends ParentClass {public T value;
}
測試
public class BuilderTest {public static void main(String[] args) {ChildClass<String> build = ChildClass.<String>childBuilder().name("zzz").value("child").build();}
}