我有一个方法。
它接受一个参数,它可以是 ProviderString 类的对象。
现在,如果我告诉该方法接受 Object,那么我可以将它传递给 ProviderString 对象,但我想使用泛型使其类型安全,并且只传递 ProviderString 。我该怎么做,可能吗?
我想实现这样的目标:

public <T can be String or Provider> void myMethod(T value)

我查看了 this question ,但在我的情况下它不起作用,因为 ProviderString 都不是接口(interface)。

最佳答案

您不应该(也不能)为此使用泛型。而是简单地提供两个重载方法:

public void myMethod(String value);
// and
public void myMethod(Provider value);

由于两者都需要进行一些不同的处理,因此这种方式实际上更简单。

关于具有多个类类型的单个参数的 Java 泛型通配符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7739043/

10-13 03:06