码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA泛型

时间:2020-03-05 10:38:56      阅读:96      评论:0      收藏:0      [点我收藏+]

标签: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 }

 

JAVA泛型

标签:private   字段   code   input   type   泛型接口   string   编译器   NPU   

原文地址:https://www.cnblogs.com/beekc/p/12418616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!