java 泛型例子_java中的泛型的一些常见例子
/**
* @author Rollen-Holt 使用泛型
*/
class hello {
hello(){
}
public T getName(){
return name;
}
public void setName(T name){
this.name = name;
}
public V getAge(){
return age;
}
public void setAge(V age){
this.age = age;
}
private T name;
private V age;
public static void main(String[] args){
hello he = new hello();
he.setAge(10);
he.setName("Rollen Holt");
System.out.println(he.getName() + " " + he.getAge());
}
}
/**
* @author Rollen-Holt 泛型类的构造方法定义
*/
class hello {
hello(T name, V age){
this.age = age;
this.name = name;
}
public T getName(){
return name;
}
public V getAge(){
return age;
}
private T name;
private V age;
public static void main(String[] args){
hello he=new hello("Rollen",12);
System.out.println(he.getName()+" "+he.getAge());
}
}
/**
* @author Rollen-Holt 使用通配符
*/
class info {
info(T name){
this.name = name;
}
private T name;
}
class hello{
public static void function(info> temp){
System.out.println("内容: "+temp);
}
public static void main(String[] args){
info demo=new info("Rollen");
function(demo);
}
}
/**
* @author Rollen-Holt 泛型上限
*/
class info{
info(T age){
this.age=age;
}
private T age;
}
class hello{
public static void function(info extends Number> temp){
System.out.println("内容"+ temp);
}
public static void main(String[] args){
info demo=new info(1);
function(demo);
}
}
/**
* @author Rollen-Holt 泛型下限
*/
class info{
info(T age){
this.age=age;
}
private T age;
}
class hello{
public static void function(info super String> temp){
System.out.println("内容"+ temp);
}
public static void main(String[] args){
// 此处只能使用String 或者Object
info demo=new info("Rollen");
function(demo);
}
}
/**
* @author Rollen-Holt 泛型和子类继承的限制
*/
class info{
}
class hello{
public static void main(String[] args){
info demo1=new info();
info demo2=new info();
//demo2=demo1; 此处错误
}
}
/**
* 上面的例子说明,一个类的子类可以通过多态性被其父类实例化
* 但是在泛型操作中,子类的泛型类型是无法被其父类的泛型类型实例化的。
*/
如果允许上面的条语句的话,会出现:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from info to info
at hello.main(hello.java:12)
泛型接口的两种实现:
/**
* @author Rollen-Holt 泛型接口的实现1
*/
interface info {
public void say();
}
// 直接在子类之后声明泛型
class hello implements info{
public static void main(String[] args){
info demo = new hello();
demo.say();
}
public void say(){
System.out.println("hello");
}
}
/**
* @author Rollen-Holt 泛型接口的实现2
*/
interface info {
public void say();
}
// 在子类实现的接口中明确给出泛型类型
class hello implements info{
public static void main(String[] args){
info demo = new hello();
demo.say();
}
public void say(){
System.out.println("hello");
}
}
/**
* @author Rollen-Holt 使用泛型通一传入参数的类型
*/
class info {
private T var;
public T getVar(){
return var;
}
public void setVar(T var){
this.var = var;
}
public String toString(){
return this.var.toString();
}
}
class hello{
public static void main(String[] args){
info demo1=new info();
info demo2=new info();
demo1.setVar("Rollen");
demo2.setVar("Holt");
printAdd(demo1, demo2);
}
// 此处传递的都是同一个String类型的
public static void printAdd(info demo1, info demo2){
System.out.println(demo1.getVar()+""+demo2.getVar());
}
}
否则的话如下所示:出现错误:
/**
* @author Rollen-Holt 使用泛型通一传入参数的类型
*/
class info {
private T var;
public T getVar(){
return var;
}
public void setVar(T var){
this.var = var;
}
public String toString(){
return this.var.toString();
}
}
class hello{
public static void main(String[] args){
info demo1=new info();
info demo2=new info();
demo1.setVar("Rollen");
demo2.setVar(30);
//此处调用错误
printAdd(demo1, demo2);
}
// 此处传递的都是同一个String类型的
public static void printAdd(info demo1, info demo2){
System.out.println(demo1.getVar()+""+demo2.getVar());
}
}
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method printAdd(info, info) in the type hello is not applicable for the arguments (info, info)
at hello.main(hello.java:26)
java 泛型例子_java中的泛型的一些常见例子相关推荐
- java 泛型机制_java中的泛型机制
泛型 这种语法机制,只在程序编译阶段起作用,只是给编译器参考的.(运行阶段泛型没用) 使用了泛型好处是什么? 第一:集合中存储的元素类型统一. 第二:从集合中取出的元素类型是泛型指定的类型,不需要进行 ...
- java 文件通配符_Java中泛型通配符的使用方法示例
本文实例讲述了Java中泛型通配符的使用方法.分享给大家供大家参考,具体如下: 一 点睛 引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数. 语法如下: 泛型类名 extend ...
- java中什么泛型_java中的泛型(一)
在java中我们定义接口其实定义的是这个类的功能,在很多时候我们并不关心这个类的类型而是这个类的能力.泛型的出现让我们的代码和代码所能操作的类型不在绑定在一起,不仅可以复用代码降低耦合还可以提高代码的 ...
- java中什么泛型_Java中的泛型
1.为什么要使用泛型? (1)适用于多种数据类型执行相同的代码,利于封装(如,封装Base类.统一的适用于recycleview的adapter等) (2)泛型中的类型在使用的时候,直接指定即可,不需 ...
- java基本数据类型泛型_Java中的泛型
泛型规范在JDK1.5版本中被添加,使用泛型机制编写的代码比起随意使用Object变量然后再进行强制类型转换的代码具有更高的安全性和可读性,同时也更为简洁.泛型对于集合类尤其有用,例如 ArrayLi ...
- java gson使用_Java 中 Gson的使用
JSON 是一种文本形式的数据交换格式,它比XML更轻量.比二进制容易阅读和编写,调式也更加方便;解析和生成的方式很多,Java中最常用的类库有:JSON-Java.Gson.Jackson.Fast ...
- java 类型擦除_java中的类型擦除type erasure
简介 泛型是java从JDK 5开始引入的新特性,泛型的引入可以让我们在代码编译的时候就强制检查传入的类型,从而提升了程序的健壮度. 泛型可以用在类和接口上,在集合类中非常常见.本文将会讲解泛型导致的 ...
- java list对象_JAVA中list
Java 查找 List 中的最大值.最小值 Java 查找 List 中的最大值.最小值 java> List list = new ArrayList(); java.util.List l ...
- java collection 用法_Java中Collection接口的用法
Collection接口是List.Set.Queue接口的父接口 Collection接口定义了可用于操作List.Set和Queue的方法--增删改查 List接口及其实现类--ArrayList ...
最新文章
- 弄懂“进程”(上):3个组成部分、4个基本特征、4个基本状态
- 思考如何提高博客的访问量
- 石墨烯可提高热成像质量 提高安检准确性
- 【译】Consortium Chain Development
- 手机pdf文件转语音_职场小白不懂PDF文件转Word文档?试试微软的这款APP吧
- 开闭原则------(转)
- 计算机软件429修复工具,Soft4Boost Any Uninstaller
- Makefile中几种赋值
- Linux Shell中各种分号和括号的用法总结
- 共阳数码管段码表_简单共阴极数码管电路图大全
- 小学奥数 7657 连乘积末尾0的个数-2022.01.26
- position:relative/absolute无法冲破的等级
- 兄弟连高洛峰php教程下载_兄弟连经典PHP项目视频教程在线学习与下载-兄弟连高洛峰...
- 计算机毕业设计之会议预约系统设计与实现
- 应用系统云原生架构衡量指标
- java论文word_word 论文 排版 适用于 word2016
- 读者提问:如何提高效率?
- 两个线程交替打印A1B2C3D4E5输出,6种实现方式
- 设计网页字体css,css教程:网页字体及字体大小的设计
- python矩阵标准化_python – 有效地行标准化矩阵