java无法实例化类型_20.不能实例化类型变量
1.TestMakePair2.java
package javacore.chapter8;
import java.util.function.Supplier;
public class TestMakePair2 {
public static void main(String[] args) {
// 1.接受Suppier--它是一个函数式接口。表示无参数且返回类型为T的函数。
/**
* 因为不能实例化类型变量,如:
* public Pair2 {first = new T();second = new T();}
* 所以最好的方式是让调用者提供一个构造器表达式.形式如下:
* @param constr
* @return
*/
Pair2 pair2 = Pair2.makePair(String::new);
System.out.println(pair2.getFirst().length());
/**
* public void makeT(){
2.传统的方式是通过Class.newInstance方法来构造泛型对象.
但由于细节过于复杂,T.class是不合法的.它会被擦除为Object.class.如下:
Illegal class literal for the type parameter T
T.class.newInstance();
}
* 3.
* T.class是不合法的,但若API設計為如下形式卻可以
* reason:因為String.class是Class的一個实例.
*/
Pair2 pair = Pair2.makePair(String.class);
}
}
class Pair2 {
private T first;
private T second;
public T getFirst() {
return first;
}
public void setFirst(T first) {
this.first = first;
}
public T getSecond() {
return second;
}
public void setSecond(T second) {
this.second = second;
}
public Pair2(T first, T second) {
this.first = first;
this.second = second;
}
public static Pair2 makePair(Supplier constr) {
return new Pair2<>(constr.get(), constr.get());
}
/**
* Cannot infer type arguments for Pair2<>
* 当函数头返回值为Pair时,无法推断,改为Pair2后可以推断.
* @param c1
* @return
*/
public static Pair2 makePair(Class c1){
try {
return new Pair2<>(c1.newInstance(),c1.newInstance());
} catch (InstantiationException | IllegalAccessException e) {
return null;
}
}
}
java无法实例化类型_20.不能实例化类型变量相关推荐
- java 不能实例化类型_java不能实例化类型
8.String类对象的两种实例化方式_计算机软件及应用_IT/计算机_专业资料.Java8面向对象编程视频课程 1. 课程名称:String 对象的两种实例化方式 2.知识点 2.1....... ...
- java无法实例化类型_java – 无法实例化泛型中的类型
我有这门课 public class Tree { //List of branches for this tree private List> branch = new ArrayList&g ...
- java无法实例化类型_关于java:无法实例化类型List
本问题已经有最佳答案,请猛点这里访问. 我有以下代码: List product = new List(); 错误: Cannot instantiate the type List Product是 ...
- Java 8函数式编程:延迟实例化
单例通常会延迟实例化自己,有时,如果对象足够重,则可以延迟实例化类字段. 通常,在走惰性路线时,getter方法(或accessor )必须具有一段代码,该代码块在返回对象之前检查对象是否已实例化(如 ...
- Class java用法,java中Class的三种实例化
1.调用Object类中的getClass()方法:import java.util.Date; public class ReflectTest3 { public static void main ...
- 小豹子带你看源码:Java 线程池(二)实例化
承上启下:上一篇文章小豹子讲了我为什么想要研究线程池的代码,以及我计划要怎样阅读代码.这篇文章我主要阅读了线程池实例化相关的代码,并提出了自己的疑问. 3 千里之行,始于实例化 3.1 先创建一个线程 ...
- JAVA语言规范 JAVA SE 8 - 类型、值和变量
JAVA语言规范 JAVA SE 8 - 类型.值和变量 类型和值的种类 简单类型和值 整数类型和值 整数操作 浮点数类型.格式和值 浮点数操作 boolean类型和布尔值 引用类型和值 对象 Obj ...
- java double 运算精度问题_关于java中Double类型的运算精度问题
如果我们编译运行下面这个程序会看到什么? public class Test{ public static void main(String args[]){ System.o ...
- 不能实例化抽象类抽象类不能实例化
在c++和java中我们会定义很多类,但是我们会遇到在对类进行new实例化时会遇到"不能实例化抽象类"或者"抽象类不能实例化",针对这个问题要首先理解两个内容& ...
最新文章
- eclipse从数据库逆向生成Hibernate实体类
- linux 权限属性,linux 文件或目录的权限和属性
- c语言安卓贪吃蛇代码下载,C语言贪吃蛇代码
- java 根据类名示例化类_Java即时类| plusMillis()方法与示例
- 单缸发动机扭矩动力学计算:理论计算virtual.lab motion仿真
- python编程胡牌将是什么意思_python麻将和牌算法
- 在linux下编译android下的opencv,使用cmake的方法
- hibernate dynamic-update=true属性不起作用原因(转载)
- 【9.4】socket模拟http请求
- linux rsync配置文件参数详解
- php禁止上传,PHP禁止某些类型的上传文件_PHP教程
- 如何手工制作html网站地图,网站地图制作_sitemap自动生成方法详解
- 颜色偏差裙子测试软件,蓝黑/白金裙子告诉你视觉误差到底有多大?——一条裙子引发的全民纠结...
- mysql的安全性实验报告_数据库安全性与完整性实验报告
- 史上最全的常用开发工具类收集(持续更新中)
- python 比较数字大小_Python:整数比较大小和输出 | 学步园
- 培训机构靠谱吗?|猿代码科技
- 建立反脆弱的投资体系,寻找风险收益不对称
- 作业:摄氏度转为华摄氏度(勿喷)
- 新西兰计算机预科学费,2018年新西兰ACG预科课程介绍(含学费、开学时间)
热门文章
- node.js+uniapp计算机毕业设计安卓养老管理APP(程序+APP+LW)
- 自动驾驶仿真——腾讯(00700)发布自动驾驶仿真平台TAD Sim 2.0,加速自动驾驶产业布局
- 点石互动--zac之:SEO教程写作计划
- 查看linux服务器操作日记,linux服务器系统如何查看日志?
- C++实验八:魔方问题
- 网络安全方面学习笔记(持续更新...)
- 自动填写个人信息(问卷星)
- java连连看游戏设计与实现
- 伊吹萃香 (Standard IO)
- log4net配置经验教训