> 文档中心 > 泛型及IO流

泛型及IO流


泛型

泛型方法、泛型类

你可以写一个泛型方法,该方法在调用时可以接收不同类型参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。

下面是定义泛型方法的规则:

  • 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的)。
  • 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
  • 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
  • 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。
package com.company.generic;//泛型类//public class GenericDemo01 {//    public void show(T t){// System.out.println(t);//    }//}//泛型方法public class GenericDemo01 {    public <T> void show(T t){ System.out.println(t);    }}
package com.company.generic;public class Test {    public static void main(String[] args) { //泛型类测试// GenericDemo01 g1 = new GenericDemo01();// g1.show("adasda");// GenericDemo01 g2 = new GenericDemo01();// g2.show(50);// GenericDemo01 g3 = new GenericDemo01();// g3.show(true); //泛型方法测试 GenericDemo01 g1 = new GenericDemo01(); g1.show("adasda"); g1.show(50); g1.show(true);    }}

泛型接口

package com.company.generic;//泛型接口public interface GenericDemo01<T> {    void show(T t);}
package com.company.generic;public class GenericDemo01Impl<T> implements GenericDemo01<T> {    @Override    public void show(T t) { System.out.println(t);    }}
package com.company.generic;public class Test {    public static void main(String[] args) { //泛型接口测试 GenericDemo01Impl<String> g1 = new GenericDemo01Impl<String>(); g1.show("sdfsdfsfd"); GenericDemo01Impl<Integer> g2 = new GenericDemo01Impl<Integer>(); g2.show(566); GenericDemo01Impl<Boolean> g3 = new GenericDemo01Impl<Boolean>(); g3.show(true);    }}

可变参数的使用

package com.company.generic;public class Test02 {    public static void main(String[] args) { System.out.println(sum(10,20,65,50)); System.out.println(sum(10,20,65,50,56)); System.out.println(sum(10,20,65,50,48,45));    }    public static int sum(int... a){ int sum = 0; for (int i : a) {     sum+=i; } return sum;    }}

子节流&字节缓冲流

package com.company.generic;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileOutputStream01 {    public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("D:\\IDEA\\net\\study\\fos.txt"); fos.write(56); byte[] byt = "abcdefg".getBytes(); fos.write(byt,0,byt.length); fos.close();    }}

在这里插入图片描述
在这里插入图片描述

字符流&字符缓冲流

在这里插入图片描述
在这里插入图片描述

开发者涨薪指南 泛型及IO流 48位大咖的思考法则、工作方式、逻辑体系