首页 > 编程语言 >java-泛型-3

java-泛型-3

时间:2022-10-31 16:07:49浏览次数:29  
标签:java System li println l2 泛型 out


package 泛型;

import java.util.*;


/**
* 泛型的高级使用
* 1.泛型的继承或接口,用extends在<>里面实现
* 2.语法:A<T extends anyClass>a;这里的泛型T必须是anyClass的子类
* eg:Demo <T extends list>{} 这里的T可以使是ArrayList 或者
* LinkedList 或者不写 但是不能为HashSet等 因为HashSet不是list的子类
*
* 泛型通配符
* 1.说明:限制泛型的类型,并且限制泛型对象的使用,不能在类的建立的时候就用
* 类名<?>{}这样就是错的
* 类名<T>{}正确
* 2.语法: A<?> a;泛型的通配符,不可以对对象进项添加和修改,但是可以删除,也能读取
* A<? extends anyClass> a; 泛型必须是anyClass的子类,且此对象不能增加和改写的操作
* A<? super anyClass> a;泛型必须是anyClass的父类
*
*
* @author 小虎牙
*
*/
public class fanxing2 {
public static void main(String[] args) {


// 第一种情况 A<?> a;



List<String> li = new ArrayList<>();
li.add("我有一个梦");

List<?> l2 = li;
System.out.println(li.get(0));
System.out.println("我是第一情况的通配符只能读取:" + l2.get(0));
/**
* 这里使用添加修改就失败了
* l2.set(1, "我要添加或者修改");
*/
/**
* 这里删除就成功啦
*/
l2.remove(0);
System.out.println("这里是li大小:"+li.size());
System.out.println("这里是l2大小:" + l2.size());

/**
* 第二种情况 List<? extends 类名A> a=new arrayList<类名A或者是他的子类>();
* 且此对象不能增加和改写的操作
*/

// 第三种情况 List<? super 类名A> a=new arrayList<类名A或者是他的父类>();


}
}


标签:java,System,li,println,l2,泛型,out
From: https://blog.51cto.com/u_15854304/5810101

相关文章

  • java-集合-1
    packagejihe;/***java之集合的使用*解释*1.集合:集合就是一个容器,相当于一个动态的数组*2.介绍类有三种MapSetList***关系图:*......
  • java-线程-2
    /***两种使用Rannable实现进程的方法**@author小虎牙**/publicclassThread_2implementsRunnable{publicstaticvoidmain(String[]args){Threadt2=new......
  • java-集合-2
    packagejihe;importjava.util.ArrayList;importjava.util.Collection;importjava.util.Iterator;/***Collection接口*接口不能直接实例化,但是它提供了很多的方法*......
  • java-文件-字符流-2
    下面展示一些​​内联代码片​​。packageFile2_Char_file;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileW......
  • java-文件目录
    文件的学习:都是在java.io这个文件夹的包下面1.文件类:File1.字节输出流-InputStream-1.FileInputStream2.FilterInputStream过滤流BufferInputStream......
  • java-集合-3
    packagejihe;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;/***接口List**1.特点:list的集合内容可以重复,并且顺序就是插入的顺序......
  • java-线程-4
    packageThread_main;/***让线程有一个直接死亡的标志线程对象名.interrupt()*,调用线程类的interrupted方法,*其本质只是设置该线程的中断标志,将中断标志设置为true,并根......
  • java-泛型-2
    package泛型;/***泛型的继承4种情况*1.全部继承Father<T1,T2>{}my<T1,T2,T3>extendsFather<T1,T2>{}*2.部分继承就是在继承的时候,给父类的泛型进行实例化*F......
  • java-文件-字节流-3
    packageFile2_Byte_file;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.I......
  • 基于java 实现rpc服务调用
    packagecom.thtf.zwdsj.fangjia.rpc;importorg.apache.ws.commons.util.NamespaceContextImpl;importorg.apache.xmlrpc.common.TypeFactoryImpl;importorg.apach......