京东网站的建设目的,flash怎么做电子书下载网站,网站空间商是什么,微信推广的好处一、泛型(参数化类型,在编译时确定) 泛型是一种可以接收数据类型的数据类型(可以这么理解) 作用#xff1a; 1.能对加入到集合中的数据类型进行约束 2.遍历的时候#xff0c;不需要进行类型转换#xff0c;提高效率(因为遍历时#xff0c;默认的是Object,需要进行类型转换的…一、泛型(参数化类型,在编译时确定) 泛型是一种可以接收数据类型的数据类型(可以这么理解) 作用 1.能对加入到集合中的数据类型进行约束 2.遍历的时候不需要进行类型转换提高效率(因为遍历时默认的是Object,需要进行类型转换的) HashMap String,String snew HashMap();
import org.junit.jupiter.api.Test;import java.util.ArrayList;public class Main{public static void main(String[] args) {}Testpublic void test(){ArrayListDog arrayListnew ArrayList();Dog dog new Dog(aaa,12);Dog dog1 new Dog(bbb,10);Dog dog2 new Dog(ccc,14);arrayList.add(dog);arrayList.add(dog1);arrayList.add(dog2);for (Dog x:arrayList){ //不需要Object向下转型才能使用Dog的toString()方法System.out.println(x.toString());}}
}
class Dog{private String name;private int age;public Dog(String name, int age) {this.name name;this.age age;}Overridepublic String toString() {return Dog{ name name \ , age age };}
}
语法 泛型的声明(接口类) interface 接口 T 和 class 类 K,V{} 其中KTV不代表值表示类型 泛型的实例化(集合) HashMap String,String snew HashMap();
自定义泛型类 class 类名 T,R,...{} class person E{ private E name; public E find(){} } 细节 1.普通成员可以使用泛型(属性方法) 2.使用泛型的数组不能初始化 3.静态方法中不能使用类的泛型因为类的泛型是后面看情况的而静态方法中的东西都需要在类加载的时候生成 4.泛型类的类型是在创建对象时确定的 5.如果在创建对象时没有指定类型默认是Object
自定义泛型接口 interface 接口名 T,R,...{} 细节 1.接口中静态成员也不能使用泛型 2.泛型接口的类型在继承接口或者实现接口的时候确定的 3.没有指定类型默认为Object
自定义泛型方法 修饰符 T,R,....返回类型 方法名 (形参){} 细节 1.泛型方法可以定义在普通类中也可以定义在泛型类中 2.当泛型方法被调用是类型会确定 3.public void eat(E e){} 这叫做使用了泛型
泛型的继承和通配符 1.泛型不具备继承性 2. ?支持任意泛型类型 3. ? extends A 支持A类以及A类的子类规定了泛型的上线 4. ? super A :支持A类以及A类的父类不限于直接父类规定了泛型的下限
二、JUnit使用 JUnit是一个Java语言的单元测试框架。 一个类有很多功能代母需要测试为了测试就需要写入到main方法中。多个代码测试就需要来回注销和切换很麻烦。Junit使用后就可以直接运行一个方法。 public class test {public static void main(String[] args) {}Test //未创建JUnit时之后点击AltEnter之后Add Junit5.8.1,就ok了public void dfs(){}
}