我有一个实用程序方法,可以从某些对象中创建一个元素列表:

public static final List list(T t) {

final List rv = new ArrayList<>();

rv.add(t);

return rv;

}

我也有一个接受类型为List< Class>的参数的方法.因此,我必须创建该类型的对象.这是我尝试做的事情:

final Class> aClass = Integer.class;

final List> trivialListOfClasses = list(aClass);

……这失败了:

[javac] /some/path/Foo.java:41: error: incompatible types

[javac] final List> trivialListOfClasses = list(aClass);

[javac] ^

[javac] required: List>

[javac] found: List>

[javac] where CAP#1 is a fresh type-variable:

[javac] CAP#1 extends Object from capture of ?

[javac] 1 error

完成上述任务的正确方法是什么?我了解有关Java泛型不变的部分,但是到底发生了什么?

解决方法:

能够在Javac 1.8.0_144上使用-source 7 -target 7进行复制.

如果您只打算从列表中删除东西,那么一件有用的事情就是使用?扩展Class

Class> aClass = Integer.class;

List extends Class>> trivialListOfClasses = list(aClass);

Class> bClass = trivialListOfClasses.get(0); // works

// trivialListOfClasses.add(String.class); // doesn't work, though

也可以在列表调用中手动提供通用类型:

Class> aClass = Integer.class;

List> trivialListOfClasses = Util.>list(aClass);

Class> bClass = trivialListOfClasses.get(0); // works

trivialListOfClasses.add(String.class); // also works

似乎编译器无法调和List< Class>的通配符类型.由列表本身返回的那个.

标签:generics,java-7,java

来源: https://codeday.me/bug/20191025/1928826.html

java 创建类带泛型_java-创建泛型类列表相关推荐

  1. java反射类带构造函数_java中反射类的加载和构造函数

    我们先创建了一个Person类 package reflect; public class Person { public String name = "zhangsan"; pu ...

  2. Python基础笔记_Day12_Python元类、type动态创建类、Python动态创建方法、Python运算符、Python发邮件、短信

    Day12_Python元类.type动态创建类.Python动态创建方法.Python运算符重载.Python发邮件.短信 12.01_Python语言基础(类对象)(熟悉) 12.02_Pytho ...

  3. java 类 方法 带泛型_java中的泛型类和泛型方法

    1.泛型是什么? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类. 可以在集合框架(Collection fram ...

  4. java建立类的思想_JAVA类和对象创建

    面向对象 学习目标: 理解面向对象的编程思想 理解类与对象的关系 如何创建类与对象 方法重载 一:什么是面向对象编程(OOP) 面向对象编程(Object Oriented Programming,O ...

  5. java创建数组的方式_Java创建数组的几种方式总结

    1.一维数组的声明方式: type[] arrayName; 或 type arrayName[]; 附:推荐使用第一种格式,因为第一种格式具有更好的可读性,表示type[]是一种引用类型(数组)而不 ...

  6. java创建文件夹代码_Java创建文件夹及文件实例代码

    package com.xhkj.util; import java.io.File; import java.io.IOException; public class CreateFileUtil ...

  7. java对类对象初始化_Java类和对象初始化

    Java类和对象初始化Tag内容描述: 1.解析 Java 类和对象的初始化过程 由一个单态模式引出的问题谈起 北京高伟达西南分软 Java EE 软件工程师 三年 Java EE 项目经验 行业方向 ...

  8. java流类图结构_java I/O 流总结

    一.java 流操作有关的类和接口: 类                                                                          说明 Fil ...

  9. java流类图结构_java学习之IO流(学习之旅,一)

    个人在学习IO流的时候看到如下所示java 流类图结构的时候,我的感想是,这么多··处于蒙的状态. Java流类图结构 这么多,没有分类不好学,那我们就慢慢一口一口的吃,这样每天学习一点就好了,其实很 ...

最新文章

  1. Ubuntu环境下使用gnuplot由数据表绘制曲线图
  2. BZOJ1460: Pku2114 Boatherds
  3. 错误: 找不到或无法加载主类 com.wdg.auditproject.auditproject.action.TestClass
  4. RS232与RS485的功能与区别!
  5. IE6的又一条罪 javascript:void(0)
  6. 【测试】用示波器抓取红外遥控器NEC信号
  7. 京瓷打印机几个常见密码
  8. Flink从入门到精通100篇(二十二)-Apache Flink OLAP引擎性能优化及应用
  9. 【NLP】NLP文本风格迁移,秒变金庸风
  10. 【工作感悟】成功入职阿里月薪45K
  11. java连接imserver_java后端IM消息推送服务开发——协议
  12. 使用kubeadm安装Kubernetes
  13. Javascript 中的变量作用域问题
  14. idea java gitignore,关于idea的gitignore文件编写及解决ignore文件不生效问题
  15. git lfs linux,Git LFS(学习笔记)
  16. gophp解释器_golang底层用什么语言实现的
  17. 医疗后台管理系统项目
  18. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
  19. bellman ford java_Bellman-Ford算法
  20. CSS控制print打印样式

热门文章

  1. 上海技术计算机学校学费多少,上海web前端学校学费一般是多少
  2. 剑指offer面试题68 - I. 二叉搜索树的最近公共祖先(递归)(二叉搜索树)
  3. 二叉查找树--插入、删除、查找
  4. 【数据结构】思维导图补充知识
  5. 基于多线程的Linux聊天室系统设计(C语言实现)
  6. opencv基础---直方图均衡化(原理equalizeHist)
  7. ckpt转pb,batch normalzition 出现的ValueError问题
  8. 关于如何打开一张jpg图片文件并存放到vector unsigned char中的讨论
  9. newgrp - 登录到新的用户组中
  10. Django合并多个查询结果