精华内容
下载资源
问答
  • 什么是泛型

    2019-08-27 23:28:10
  • 什么是泛型编程

    2021-04-10 00:24:21
    什么是泛型编程

    什么是泛型编程

     泛型编程(Generic Programming)的目的是为了发明一种语言机制,能够帮助实现一个通用的标准容器库。通用的标准容器库是指能够实现这样一种功能:例如,用一个List类存放各种类型的对象,而泛型编程可以让程序员编写完全一般化并且可以重用的算法,其效率与针对某一特定类型而设计的算法相同。泛型与模板类似,指具有在多种数据类型上都可以操作的含义

      STL巨大,而且可以扩充,它包含很多计算机算法和数据结构,而且将算法与数据结构完全分离,其中算法是泛型的,不与特定数据结构或者对象类型绑定在一起。

    展开全文
  • 在学习Java的过程中发现一个名词叫,泛型,可是什么是泛型呢?泛型是Java SE 1.5的新特性,下面我将带大家详细了解一下,感兴趣的朋友可以了解一下,希望对你有所帮助。泛型的本质是参数化类型,也就是说所操作的...

    在学习Java的过程中发现一个名词叫,泛型,可是什么是泛型呢?泛型是Java SE 1.5的新特性,下面我将带大家详细了解一下,感兴趣的朋友可以了解一下,希望对你有所帮助。

    b57aeabce802186454b94cb9326918f0.png

    泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

    这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。

    在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。

    对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。

    泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。

    规则限制:

    1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

    2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。

    3、泛型的类型参数可以有多个。

    4、泛型的参数类型可以使用extends语句,例如。习惯上称为“有界类型”。

    5、泛型的参数类型还可以是通配符类型。例如Class> classType = Class.forName("java.lang.String");

    展开全文
  • 2.什么是泛型? 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量...

    1.为什么会有泛型呢?
    早期的Object类型可以接受任意的对象类型,但是在实际使用中,会有类型转化的问题,存在隐患,所以Java提供泛型解决这个安全问题
    2.什么是泛型?
    泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
    泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
    3.泛型的使用
    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法
    (1) 泛型类
    把泛型定义在类上
    格式:public class类名<泛型类型,…>
    注意:泛型类型 必须是引用类型

    //一个泛型类
    public class ObjectTool<E> {
    private E obj;
    
    public E getObj() {
    	return obj;
    }
    
    public void setObj(E obj) {
    	this.obj = obj;
    }
    }
    
     // 泛型类测试  
    public class ObjectToolDemo {
    public static void main(String[] args) {
    	ObjectTool<String> obj=new ObjectTool<String>();
    	obj.setObj("张三");
    	String s=obj.getObj();
    	System.out.println(s);
    }
    }
    
    
    

    (2)泛型方法
    把泛型定义在方法上
    格式:public<泛型类型>返回类型 方法名(泛型类型)

    //泛型方法
    public class ObjectTool{
    	public <T> void show(T t) {
    		
    	}
    	
    }
    //测试
    public class ObjectToolDemo {
    public static void main(String[] args) {
    	ObjectTool obj=new ObjectTool();
    	obj.show(1);
    	obj.show("hello");
    	obj.show(true);
    	
    }
    }
    

    (3)泛型接口
    把泛型定义在接口上
    格式:public interface接口名<泛型类型>

    //定义泛型接口
    public interface Inter<T> {
    public abstract void show(T t);
    }
    //实现接口
    public class InterfaceImpl<T> implements Inter<T>{
    public static void main(String[] args) {
    }
    public void show(T t) {
    }
    }
    //测试
    public class InterfaceDemo {
    public static void main(String[] args) {
    	//接口测试
    	Inter<String> i=new InterfaceImpl<String>();
    	i.show("hello");
    	Inter<Integer> i2=new InterfaceImpl<Integer>();
    	i2.show(100);
    	Inter<Boolean> i3=new InterfaceImpl<Boolean>();
    	i3.show(true);
    
    }
    }
    

    4.泛型的好处
    Java 语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了。
    1,类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。
    5. 泛型通配符

    • 泛型通配符<?>
      任意类型,如果没有明确,那么就是Object以及任意的Java类
    //泛型如果明确写的时候,前后需要一致
    		Collection<Object> c1=new ArrayList<Object>();
    		//Collection<Object> c2=new ArrayList<Animal>();
    		//Collection<Object> c3=new ArrayList<cat>();报错
    		//Collection<Object> c4=new ArrayList<dog>();
    		
    		//?表示任意类型都是可以的
    		Collection<?> c2=new ArrayList<Animal>();
    		Collection<?> c3=new ArrayList<cat>();
    		Collection<?> c4=new ArrayList<dog>();
    
    • ? Extends E
      向下设定,E及其子类
    //? Extends E
    		Collection<? extends Animal> c5=new ArrayList<Animal>();
    		Collection<? extends Animal> c6=new ArrayList<dog>();
    		Collection<? extends Animal> c7=new ArrayList<cat>();
    
    • ? super E
      向上设定,E及其父类
    //向上设定,E及其父类
    		Collection<? super Animal> c8=new ArrayList<Object>();
    		Collection<? super Animal> c9=new ArrayList<Animal>();
    
    展开全文
  • 什么是泛型

    2020-09-14 05:40:50
    什么是泛型? 泛型的概念 Java泛型(generics),新特性,编译时检查类型。本质是参数化类型。 泛型的好处 ●类型安全 ●消除了强制类型的转换
  • 什么是泛型? ** Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)。 简单来说,参数类型成为一个变量,参数类型可以改变。 ** 为什么要...
  • 09 什么是泛型,怎么用泛型 泛型:代码能够与他们的数据类型不再绑定在一起,同一套代码可以适用于多种数据类型,这样不仅可以复用代码,可以降低耦合性,而且还可以提高代码的可读性 泛型原理 通过将数据类型定义为...
  • 1:什么是泛型? 泛型就是广泛的类型,也是一种数据类型,而这种数据类型可以是任意类型,编写过程中当中不能确定类型,创建对象时必须指定具体类型,不指定也可以,但是会出现一些错误。 泛型是编译器行为,...
  • 作者:BossXiang出自:五角钱的程序员原文:mp....一、什么是泛型,泛型有什么用1.泛型就是一种未知的类,将未知的类型声明在集合、对象上,泛型的默认类型为Object。例如:ArrayList<String> str = new Arr...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,693
精华内容 4,277
关键字:

什么是泛型