我觉得我一定错过了一些东西,但我根本不明白为什么这些方法看起来不像:
public static <N> GraphBuilder<N> directed() { ... }
public static <N> GraphBuilder<N> undirected() { ... }
当前的设计意味着除了使用这些模式之外,不可能获得GraphBuilder
任何参数化,Object
直到您调用nodeOrder
,这将正确推断泛型类型并执行强制转换。 (顺便说一句,有这种通用的向下转型行为感觉很奇怪,nodeOrder
但是,例如,allowsSelfLoops
没有。)