含有泛型的方法
定义格式:
修饰符 <泛型> 返回值类型 方法名(参数){}
含有泛型的方法 在调用方法的时候确定泛型的数据类型传递什么类型的参数 泛型就是什么类型
代码:
方法类:
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());
}
}
}
运行结果:
标签:String,void,method,static,泛型,public From: https://www.cnblogs.com/shenziyi/p/16798036.html