gpt4 book ai didi

Java 1.4 + 可扩展构建器模式

转载 作者:行者123 更新时间:2023-12-01 15:49:46 25 4
gpt4 key购买 nike

在实现利用 builder pattern 的可扩展类时,我遇到了一些困难。在java 1.4中。该模式本身很有效,但由于缺乏泛型,在使其可扩展时我遇到了一些困难。

此时,我能想到的最佳解决方案是在父级中拥有一个抽象的内部 Builder 类。然后,它包含一个 protected 构造函数,用于子类共有的所有必需参数,以及一些 javadoc 来通知用户他们需要实现自己的 build() 方法,该方法返回与返回类型相同的对象类(class)。如果人们使用 RTFM,这会起作用,否则它就会崩溃......这很糟糕。任何想法表示赞赏。

注意:我一直在 1.4 中工作,因为这是设计运行的专用硬件的虚拟机。

最佳答案

“伪造”泛型的一种方法是让子类将 Class 传递到构造函数中。

public class MySuperClass {

private final Class clazz;

protected MySuperClass(Class clazz) {
this.clazz = clazz;
}

public void doSomethingGenericish(Object param) {
// Pseudo generic check
if (!param.getClass().isAssignableFrom(param)) {
throw new ClassCastException("Could not cast " + param.getClass() + " as " + clazz);
}
// Some code
}
}

public class MySubClass extends MySuperClass {

protected MySubClass()
{
super(PseudoGenericsParameterClass.class);
}
}

关于Java 1.4 + 可扩展构建器模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com