package com.generics;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
//认识泛型
ArrayList list = new ArrayList();
list.add("JAVA1");
list.add("JAVA2");
list.add("JAVA3");
list.add(new Cat());
for (int i = 0; i < list.size(); i++) {
String s = (String) list.get(i);
//System.out.println(s);//依然会报错,因为Cat类不能转成String类
}
System.out.println("==========================");
ArrayList<String> list1 = new ArrayList();//从JDK1.7开始等号后面不用也加<String>
list1.add("JAVA1");
list1.add("JAVA2");
list1.add("JAVA3");
for (int i = 0; i < list1.size(); i++) {
String e = list1.get(i);
System.out.println(e);
}
}
}
class Cat{}
代码二:认识泛型类
MyArrayList类(泛型类)
java复制代码
package com.generics_class;
//泛型类
public class MyArrayList<E> {
private Object[] arr = new Object[10];
private int size = 0;//记录当前位置的
public boolean add(E e) {
arr[size++] = e;
return true;
}
public E get(int index) {
return (E) arr[index];
}
}
MyClass2类(泛型类)
java复制代码
package com.generics_class;
public class MyClass2<E,T> {
public void get(E e,T t){
}
}
MyClass3类(泛型类)
java复制代码
package com.generics_class;
public class Myclass3<E extends Animal> {
}
Animal类(父类)
java复制代码
package com.generics_class;
public class Animal {
}
Cat(子类继承Animal)
java复制代码
package com.generics_class;
public class Cat extends Animal {
}
Test类(主程序类)
java复制代码
package com.generics_class;
public class Test {
//掌握泛型类的定义和使用
public static void main(String[] args) {
MyArrayList<String> list = new MyArrayList<>();
list.add("JAVA1");
list.add("JAVA2");
list.add("JAVA3");
String s = list.get(1);
System.out.println(s);
MyClass2<String,String> c2 = new MyClass2<>();
Myclass3<Cat> c3 = new Myclass3<>();
}
}
package com.generics_interface;
public class Student {
}
Teacher(老师类)
java复制代码
package com.generics_interface;
public class Teacher {
}
StudentData (实现Data接口的类)
java复制代码
package com.generics_interface;
import java.util.ArrayList;
public class StudentData implements Data<Student>{
@Override
public void add(Student student) {
}
@Override
public ArrayList<Student> getByName(String name) {
return null;
}
}
StudentData (实现Data接口的类)
java复制代码
package com.generics_interface;
import java.util.ArrayList;
public class TeacherData implements Data<Teacher>{
@Override
public void add(Teacher teacher) {
}
@Override
public ArrayList<Teacher> getByName(String name) {
return null;
}
}
Test类 (介绍此次课程目标)
java复制代码
package com.generics_interface;
public class Test {
public static void main(String[] args) {
//目标:掌握泛型接口的定义和使用
//场景:系统需要处理老师和学生的数据,需要提供两个功能,根据名称查询数据
}
}