0
我需要有这样的排序GADT在Java中,像参数化类型
interface Action<C, O> {
Collection<O> doAction(C<O> predicate)
}
,所以我可以很容易地声明类像
class Selector<T> {
...
}
,然后用执行使用它例如,接受Selector实例的动作。并且Action的实现也接受谓词 - 但参数的类型必须匹配返回类型的集合。
主要想法是有一种类型依赖于另一种类型。这在普通的旧式Java 6中可能吗?
我不知道,我跟随。你可以将'Action'定义为'Action>',我认为(尽管你可能会用'C'作为'predicate'的类型)。与大多数语言一样,Java不支持更高阶的类型。 –
2012-01-10 15:41:47
@ TomHawtin-tackline行动>是无效的定义。 –
jdevelop
2012-01-10 15:45:27
您不仅可以因为C是通用的,您不能保证C是O的泛型类型。您可以指定C从特定类扩展或实现可包含O的特定接口。您是否可以提供有关C,O的更多信息? – Cromat 2012-01-10 15:48:48