【发布时间】:2017-06-12 18:47:57
【问题描述】:
这个问题可能类似于cast the Parent object to Child object in C#,但它是关于 C# 的,我有一个关于 Java 的问题。
我还打算做一个通用的构建器。泛型构建器应该只构建抽象对象的部分,子类都管理抽象类的各个实现。
abstract class GenericBuilder<B extends GenericBuilder>
{
//lots of build methods
public B lastBuildingMethodInTheChain(Object someValue)
{
//assignment
return this;//<-- is not allowed!
}
}
但是当我加入演员表时:return (B) this; 很好。
演员阵容是我想阻止的,但这也限制了儿童建造者使用他们的特殊方法。
最后一点是有道理的,因为 Generic 类型仅在运行时才知道,但我不知道如何编写它以便在编译时工作。
谢谢!
【问题讨论】:
-
所有这些答案都让我想到了一个新问题:我不能“拥有多个孩子”。我不确定是否必须编辑此问题或提出新问题。
-
我提出了一个新问题来解决我的真正问题。 stackoverflow.com/questions/44527022/…这个问题我会再来一次,这样对别人会更有用。
标签: java design-patterns