bounded-wildcard相关内容

Java 未绑定通配符泛型

在 Bar 类中使用通配符类型的泛型比完全跳过它们有什么优势吗? 公共类Foo{}公共接口栏{public void addFoo(Foo foo);公共 FoogetFoo(字符串名称);} 解决方案 优势多多. 它们不会像使用原始类型那样产生编译器警告 它们提供了更多的类型安全性.例如,考虑一下 Foo 是否是 List.如果你使用 List 而不是 List,你可以这 ..
发布时间:2022-01-07 13:39:34 Java开发

列表

我有一个关于泛型的 Java 问题.我声明了一个通用列表: 列表listOfMyType; 然后在某些方法中,我尝试实例化并将项目添加到该列表中: listOfMyType = new ArrayList();listOfMyType.add(myTypeInstance); 其中 myTypeInstance 只是一个 MyType 类型的对象;它不会编译.它说: 方法 add(c ..
发布时间:2021-12-15 09:55:29 Java开发

使用通配符创建新的通用对象

请解释这个通用代码通配符编译时错误: //没有编译时错误.列表x = 新的 ArrayList();//编译时错误.列表x = 新的 ArrayList(); 解决方案 使用通配符实例化泛型类型是无效的语法.类型 List 表示 某种类型的 List 是或扩展 Number.创建这种类型的实例没有意义,因为通过实例化您正在创建特定的东西: new ArrayList();//编译器:“等等 ..
发布时间:2021-12-15 09:47:11 Java开发

为什么在有界通配符泛型中不能有多个接口?

我知道 Java 的泛型类型有各种违反直觉的属性.这是我特别不明白的一个,我希望有人可以向我解释.为类或接口指定类型参数时,可以绑定它,使其必须实现多个接口,其中 public class Foo.但是,如果您正在实例化一个实际对象,这将不再起作用.列表 很好,但是 List 编译失败.考虑以下完整片段: import java.util.L ..
发布时间:2021-12-15 09:40:30 Java开发

Java 泛型(通配符)

我有几个关于 Java 中的通用通配符的问题: List 和 List? 什么是有界通配符,什么是无界通配符? 解决方案 在你的第一个问题中, 和 是有界通配符的例子.无界通配符看起来像 ,基本上意味着 .它松散地意味着泛型可以是任何类型.有界通配符( 或 )通过说它必须extend 特定类型( 称为上限),或者必须是特定类型的祖先(代码>被称为下界). Java 教程在 ..
发布时间:2021-11-25 12:56:23 Java开发

带有类的 Java 泛型 &一个接口 - 在一起

我想要一个 Class 对象,但我想强制它代表的任何类扩展类 A 并实现接口 B. 我能做到: Class 或者: Class 但我不能两者都做.有没有办法做到这一点? 解决方案 实际上,您可以做您想做的事.如果你想提供多个接口或一个类加接口,你必须让你的通配符看起来像这样: 请参阅 ..
发布时间:2021-11-25 12:54:49 Java开发

什么是PECS(生产者扩展消费者超级)?

我在阅读泛型时遇到了 PECS(Producer extends 和 Consumer super 的缩写). 谁能向我解释一下如何使用 PECS 来解决 extends 和 super 之间的混淆? 解决方案 tl;dr:是从集合的角度来看.如果你只从一个泛型集合中提取项目,它是一个生产者,你应该使用extends;如果你只往里面塞东西,它就是一个消费者,你应该使用super.如果 ..
发布时间:2021-11-25 10:06:44 Java开发

什么是 PECS(生产者扩展消费者超级)?

我在阅读泛型时遇到了 PECS(Producer extends 和 Consumer super 的缩写). 谁能向我解释一下如何使用 PECS 来解决 extends 和 super 之间的混淆? 解决方案 tl;dr:是从集合的角度来看.如果你只从一个泛型集合中提取项目,它是一个生产者,你应该使用extends;如果你只往里面塞东西,它就是一个消费者,你应该使用super.如果 ..
发布时间:2021-11-22 14:46:12 Java开发

什么是PECS(生产者扩展消费者超级)?

我在阅读泛型时遇到了 PECS(Producer extends 和 Consumer super 的缩写). 谁能向我解释一下如何使用 PECS 来解决 extends 和 super 之间的混淆? 解决方案 tl;dr:是从集合的角度来看.如果你只从一个泛型集合中提取项目,它是一个生产者,你应该使用extends;如果你只往里面塞东西,它就是一个消费者,你应该使用super.如果 ..
发布时间:2021-11-19 22:23:51 Java开发

为什么涉及通配符的此分配在Java中合法?

关于通配符的大多数问题都想知道为什么编译器拒绝明智的选择.我的问题是相反的.为什么编译器接受以下程序? void测试(List g1,List g2){g1 = g2;} 我试图从Java语言规范中对此进行解释,但是我没有找到答案.从Java泛型和通配符的各种描述中,我得到的印象是,通配符的每次使用都被捕获为一种全新的类型,但显然不在这里.我尚未发现允许此分配执行任何令人讨厌的行为,但 ..
发布时间:2021-05-10 18:46:24 Java开发

具有类和Java的Java泛型接口-一起

我想要一个Class对象,但是我想强制使用它表示的任何类来扩展A类并实现接口B. 我可以做到: Class 或者: Class 但是我不能两者都做.有办法吗? 解决方案 实际上,您可以做您想做的事情.如果要提供多个接口或一个类加接口,则必须使通配符看起来像这样: ..
发布时间:2021-02-09 21:12:02 Java开发