繁体   English   中英

使用通配符限制函数只接受类及其子类

[英]Using Wildcard to limit the function to take only class and its subclasses

       public <T extends Exception> void testFunction(T  t) {

}

这与编写 testFunction(Exception t) 相同。 我在上面使用泛型只是为了表明 java 允许这样做。

但是 Java 不允许使用通配符做同样的事情

        public void testFunction(<? Extends Exception> t) {

}

我如何在这里使用通配符? 这样做没有真正的目的。但还是想从语法的角度看看是否有可能的方法。

public <T extends Integer> void testFunction(T  t) { ... }

此函数接受Integer或任何子类型(如果可能存在)。 不会强迫你提供的一个亚型Integer 因此它接受完全相同的类型范围

public void testFunction(Integer i) { ... }

实际上没有办法在 Java 中指定严格的子类型(排他的上类型界限)。

您不需要泛型(即使您用非最终类替换Integer ):

public void testFunction(Integer t) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM