Tag: 类型约束

Javagenerics方法约束 – 从约束中排除类型以防止擦除问题?

我试图基于类型约束重载方法。 代码看起来像这样: protected static void addComponent(List factors, T component) { … } protected static void addComponent(List factors, T conditionalComponent) { …. } ComponentTemplate是一个抽象类, ConditionalComponent是一个接口。 这两种方法可以将组件添加到组件列表中。 在组件实现ConditionalComponent的情况下,将使用其他方法来确定是否应添加特定组件。 当对象未实现ConditionalComponent时,将使用完全不同的方法。 问题是这些方法具有相同的擦除(根据RAD,当然拒绝编译)。 有没有办法定义第一个方法,以便它排除任何扩展ComponentTemplate和ConditionalComponent对象? 我想象过这样的事情: protected static void addComponent(List factors, T component) { … } 但是,当然,这不起作用(它不是有效的语法)。 我正在尝试做什么,或者是否有解决方法?