【再谈Java泛型---下】教程文章相关的互联网学习教程文章

java – 具有流畅接口和继承的自绑定泛型类型【代码】

我正在使用一个流畅的继承接口.我宣布基类构造函数受到保护,因此你无法创建一个Foo< Bar>调用add()会导致ClassCastException.但我遇到了返回新Foo实例的静态方法的问题.public class Foo<T extends Foo<T>> // if i change to extends Foo i only get warnings {public static Foo<Foo> createFoo() // <-- error{return new Foo<Foo>(); // <-- error}protected Foo() {}public T add(){//...return (T)this;} }public class Bar ...

Java泛型方法:超级不能用?【代码】

所以我有这个方法:protected void collectSelectedItems(ListSelectionModel lsm, Collection<? super MyItemClass> result) {for (int i : GUI.getSelectionIndices(lsm)){result.add(getItemByDisplayIndex(i));} }我想返回集合而不是void方法:protected <T super MyItemClass> Collection<T> collectSelectedItems(ListSelectionModel lsm, Collection<T> result) {for (int i : GUI.getSelectionIndices(lsm)){result.add(ge...

Java泛型中E、T、K、V等的含义

原文链接:https://blog.csdn.net/qq_36173526/article/details/80604210**Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ? - 表示不确定的java类型 S、U、V - 2nd、3rd、4th types Object跟这些标记符代表的java类型有啥区别呢? Object是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能...

Java泛型并转换为基本类型【代码】

我目前正在尝试学习如何使用一本书中的泛型.在本章中,它说要获取一段数据T并将其转换为整数.我在Eclipse中尝试不同的东西,但似乎没有人允许这样做.你怎么能执行以下任务:LinkedList<T> arr = new LinkedList<T>();Float fl = 8.74273123948; arr.add(fl);然后在另一个班级:public int findValue(Node node) {T data = node.data;int value = Number.valueOf(data); return value; }我尝试过在其他一些事情中使用.valueOf()和(in...

在Java中,捕获泛型异常和特定异常(例如IOException?)之间的区别是什么?【代码】

目前我只捕获通用异常,但我希望更改此功能以捕获特定异常,但这有什么优势?解决方法:执行常规try / catch语句和捕获特定异常(例如FileNotFoundException)之间的区别通常取决于您需要处理哪些错误以及您不必担心哪些错误.例如:catch (Exception e) { //A (too) general exception handler ... }上面的代码将捕获在try语句中抛出的每个异常.但也许你不想处理每一个错误.你可以用“OutOfMemory”例外做什么? 更好的错误处理方法是...

Java比较泛型类型【代码】

在Java中,我编写了一个二进制搜索树类,它使用递归添加节点.现在我想使用泛型来概括它,以便我可以更多地了解它们.public class GBinNode<T> {T item;GBinNode<T> left;GBinNode<T> right;public GBinNode(T newItem) {item = newItem;left = null;right = null;} public GBinNode(T it, GBinNode<T> le, GBinNode<T> ri) {item = it;left = le;right = ri;} public String toString() {return item.toString()+" ";} }我添加节点的功...

创建Java泛型类时,尖括号中的波浪号是什么意思?【代码】

我正在阅读一些JMockit示例并找到此代码:final List<OrderItem> actualItems = new ArrayList<~>();通用标识符中的波浪号是什么意思?我知道它是一元按位NOT运算符,但我没有在这里看到一个操作数. 此外,我尝试编译它并得到一个错误.我只是错过了一些东西吗?解决方法:It is just a shorthand for “same as in declaration”.一些IDE,例如IntelliJ也使用它. 磁盘上的文件没有这种表示法,这只是IDE GUI中的压缩.

java – 通过使用泛型’extends’添加字符串会导致编译器错误【代码】

代码如下:List<? extends String> genericNames = new ArrayList<String>(); genericNames.add("John");给编译器错误:Multiple markers at this line– The method add(capture#1-of ? extends String) in the type List is not applicable for thearguments (String)– The method add(capture#1-of ?) in the type List is not applicable for the arguments (String)导致此错误的原因是什么?我是否应该无法添加字符...

android – 类java.util.Map有泛型类型参数,请改用GenericTypeIndicator【代码】

我正在使用firebase从数据库中检索数据 Map< String,String> map = dataSnapshot.getValue(Map.class); 获取值,但它显示错误E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.rana.sahaj.myyu, PID: 13179com.google.firebase.database.DatabaseException: Class java.util.Map has generic type parameters, please use GenericTypeIndicator insteadat com.google.android.gms.internal.zzaix.zzb(Unknown Source)at com.go...

java – collection.sort /比较代码中泛型>的解释?【代码】

我一直使用类似的界面通过collection.sort为我的班级提供自然顺序. 基本上如果我有一个人类,我会得到它来实现Comparable接口,并将提供compareTo的实现.但是在javadocs中Collections.sort的定义中,我看到了这个签名public static <T extends Comparable<? super T>> void sort(List<T> list)我根本不理解这个泛型定义?不应该只是说<T implements Comparable<T>>有人可以帮我弄这个吗?解决方法:实际上,这意味着T可以实现Comparable...

20190920 On Java8 第二十章 泛型【代码】

第二十章 泛型 多态的泛化机制:将方法的参数类型设为基类; 方法以接口而不是类作为参数; 使用泛型;泛型实现了参数化类型 简单泛型 Java 泛型的核心概念:你只需告诉编译器要使用什么类型,剩下的细节交给它来处理。 钻石写法: GenericHolder<Bob> h3 = new GenericHolder<>(); 一个元组类库 元组,是将一组对象直接打包存储于其中的一个单一对象。 一个堆栈类 public class LinkedStack<T> {private static class Node<U> {U ...

java泛型与迭代器的关系【代码】

泛型 ??本质上是类型参数化,解决了不确定对象的类型问题。泛型的使用,参考下面代码: ArrayList<String> arrayList = new ArrayList(); arrayList.add("Java");泛型的优点 安全:不用担心程序运行过程中出现类型转换的错误。 避免了类型转换:如果是非泛型,获取到的元素是 Object 类型的,需要强制类型转换。 可读性高:编码阶段就明确的知道集合中元素的类型。 迭代器(Iterator) 1.为什么要用迭代器? 在迭代器(Iterator)没...

Java泛型并将数字加在一起【代码】

我想在java中一般添加数字.我遇到了困难,因为Numbers类并不真正支持我想做的事情.到目前为止我尝试过的是:public class Summer<E extends Number> {public E sumValue(List<E> objectsToSum) {E total = (E) new Object();for (E number : objectsToSum){total += number;}return null;}显然这不起作用.我该如何纠正这段代码,以便给出一个< int>列表.或者< long>或者其他什么并归还总和?解决方法:为了一般地计算总和,您需要提供两...

‘E’,’T’和’?’之间有什么区别?对于Java泛型?【代码】

我遇到像这样的Java代码:public interface Foo<E> {}public interface Bar<T> {}public interface Zar<?> {}上述所有这三者之间有什么区别,他们在Java中称这种类或接口声明是什么?解决方法:那么前两者之间没有区别 – 他们只是为类型参数(E或T)使用不同的名称. 第三个不是有效的声明 – ?用作提供类型参数时使用的通配符,例如,列表与LT;?&GT foo = …意味着foo指的是某种类型的列表,但我们不知道是什么. 所有这些都是泛型,这是...

Java中关于泛型集合类存储的总结【代码】【图】

集合类存储在任何编程语言中都是很重要的内容,只因有这样的存储数据结构才让我们可以在内存中轻易的操作数据,那么在Java中这些存储类集合结构都有哪些?内部实现是怎么样?有什么用途呢?下面分享一些我的总结 集合类存储结构的种类及其继承关系图图中只列出了比较关键的继承关系,在Java中所有的集合类都实现Collection接口,在直接的继承关系中主要分为两大接口:一个是列表实现的List接口,另一个是集合实现的Set接口。在列表...