我有一个方法。
它接受一个参数,它可以是 Provider
或 String
类的对象。
现在,如果我告诉该方法接受 Object,那么我可以将它传递给 Provider
或 String
对象,但我想使用泛型使其类型安全,并且只传递 Provider
或 String
。我该怎么做,可能吗?
我想实现这样的目标:
public <T can be String or Provider> void myMethod(T value)
我查看了 this question ,但在我的情况下它不起作用,因为
Provider
或 String
都不是接口(interface)。 最佳答案
您不应该(也不能)为此使用泛型。而是简单地提供两个重载方法:
public void myMethod(String value);
// and
public void myMethod(Provider value);
由于两者都需要进行一些不同的处理,因此这种方式实际上更简单。
关于具有多个类类型的单个参数的 Java 泛型通配符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7739043/