标签:private 字段 code input type 泛型接口 string 编译器 NPU
泛型的本质是参数化类型,也就是说所操的数据类型被指定为一个参数,这种参数类型可以在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。引入泛型的好处是在编译的时候检查类型安全,并且所有强制转换都是自动和隐式的,提高代码的重用效率。简单来说就是安全简单。
实例一
强制转换问题
1 /* 2 * 作者:白客C 3 * 时间:2020年03月05日 4 * 内容:泛型解决强制转换 5 */ 6 7 package com.beekc.www; 8 import java.util.*; 9 10 public class Beekc { 11 public static void main(String[] args) { 12 13 //实例化一个属于泛型的集合类 14 ArrayList<Dog> arr = new ArrayList<Dog>(); 15 //实例化狗类 16 Dog dog = new Dog("白客",18); 17 //添加到集合 18 arr.add(dog); 19 20 //这里不用强制转换,对于强制类型转换错误的情况,编译器可能不提示错误 21 Dog temp = arr.get(0); 22 23 System.out.println("姓名:"+ temp.getName() + "\n年龄:" + temp.getAge()); 24 25 } 26 } 27 28 29 //狗类 30 class Dog{ 31 private String name; 32 private int age; 33 34 public Dog(String name,int age) 35 { 36 this.name = name; 37 this.age = age; 38 } 39 40 public String getName() { 41 return name; 42 } 43 44 public void setName(String name) { 45 this.name = name; 46 } 47 48 public int getAge() { 49 return age; 50 } 51 52 public void setAge(int age) { 53 this.age = age; 54 } 55 }
实例二
可定义一个泛型类,想实例化什么样的类型就传过去什么类型,我下面实例是传一个String类型。这样可以提高代码的重用效率。也可以通过反射机制去获取其他类的方法、字段、构造函数、类型等。
1 /* 2 * 作者:白客C 3 * 时间:2020年03月05日 4 * 内容:反射机制 5 */ 6 7 package com.beekc.www; 8 9 public class Beekc { 10 public static void main(String[] args) { 11 12 //实例化一个泛型对象并给它为String类型 13 Gen<String> gen = new Gen<String>("白客C"); 14 gen.showTypeName(); 15 16 Gen<Bird> Bgen = new Gen<Bird>(new Bird()); 17 Bgen.showTypeName(); 18 19 20 } 21 } 22 23 class Bird 24 { 25 public void input() 26 { 27 System.out.println("白客C"); 28 } 29 } 30 31 //定义一个泛型类 32 class Gen<T> 33 { 34 private T o; 35 36 //构造函数 37 public Gen(T o) 38 { 39 this.o = o; 40 } 41 42 public void showTypeName() 43 { 44 System.out.println("类型是:" + o.getClass().getName()); 45 } 46 }
标签:private 字段 code input type 泛型接口 string 编译器 NPU
原文地址:https://www.cnblogs.com/beekc/p/12418616.html