泛型及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(); }}
字符流&字符缓冲流
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系