泛型(2)

含有泛型的方法

定义格式:

修饰符 <泛型> 返回值类型 方法名(参数){}

含有泛型的方法 在调用方法的时候确定泛型的数据类型传递什么类型的参数 泛型就是什么类型

代码:

方法类:

public class DemoMethod {
public <m>void method(m str){
System.out.println(str);
}
}

测试类:

    public static void main(String[] args) {
DemoMethod m = new DemoMethod();
m.method(10);
m.method("张三");
m.method(10.0);
}
}

运行结果:

静态方法

代码:

方法:

public static <n>void method1(n oe){
System.out.println(oe);
}

测试类:

public static void main(String[] args) {
DemoMethod m = new DemoMethod();
m.method(10);
m.method("张三");
m.method(10.0);
System.out.println("-----------------------------");
m.method1("静态方法不建议创建对象使用");
DemoMethod.method1("静态方法");
}

运行结果:

 定义和使用接口泛型

使用方式 定义接口的实现类 指定接口的泛型

接口:

public interface Interface<I> {
public abstract void eat(I in);
}

实现类:

public class InterfaceImp implements Interface<String>{
@Override
public void eat(String in) {
System.out.println(in);
}
}

测试类:

public static void main(String[] args) {
InterfaceImp imp = new InterfaceImp();
imp.eat("吃东西");

}

泛型的通配符

 当使用泛型类型或者接口时 传递的数据中 泛型类型不确定 可以通过通配符<?>表示 但是一旦使用泛型的通配符后 只能使用Object类中的共性方法 集合中元素自身方法无法使用

通配符的使用

泛型的通配符:不知道使用什么类型来接收的时候 此时可以使用?,?表示未知通配符

此时只能接受数据 不能往该集合中存储数据

代码:

public class DemoCharacter {
public static void main(String[] args) {
//创建两个集合分别Integer、String、
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(11);
list1.add(12);
ArrayList<Object> list2 = new ArrayList<>();
list2.add("张三");
list2.add("李四");

method(list1);
method(list2);
}
public static void method(ArrayList<?> list){
Iterator<?> iterator = list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}

运行结果:

posted @ 2022-10-17 09:39  想见玺1面  阅读(14)  评论(0编辑  收藏  举报