Java 1.4 +可扩展构建器模式

问题描述

| 在实现利用Java 1.4中的构建器模式的可扩展类时,我遇到了一些麻烦。该模式本身可以解决问题,但是由于缺乏泛型,因此在使其可扩展性方面遇到了一些麻烦。 在这一点上,我想出的最好的解决方案是在父级内部有一个抽象的内部
Builder
类。然后,它包含子类共有的所有必需参数的受保护构造函数,以及一些javadoc通知用户他们需要实现自己的
build()
方法,该方法返回与返回类相同类型的对象。如果人们使用RTFM可以正常工作,否则会损坏...这很糟糕。任何想法表示赞赏。 注意:我只能在1.4中工作,因为那是设计用于运行的专用硬件的VM。     

解决方法

        “仿冒”泛型的一种方法是让子类将ѭ2传递给构造函数。
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);
    }
}
    ,        泛型只是一种方便,它允许编译器为您强制执行一些操作。如果您只是彻底记录事物的类型并自己执行这些规则,那么在没有泛型的情况下您将获得相同的结果。哎呀,您甚至可以在注释中编写泛型类型的东西,然后自己关注它们。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...