进阶day02-泛型方法的使用

This commit is contained in:
2026-01-31 13:50:06 +08:00
parent 89464bb2d8
commit 787e103e2e
2 changed files with 32 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
package com.inmind.generic04;
/*
泛型类:
能不能在一个类中定义一个未知类型,接收的具体的是什么类型,就返回什么类型,这个数据类型要动态,并省略掉强转操作,也避免类型转换异常???
可以,使用泛型类,在类名加上<任意大写字母>
泛型类的格式:
@@ -11,14 +12,27 @@ package com.inmind.generic04;
创建对象时才确定
如果要定义多个未知类型,直接写在<ABC>即可
-------------------------------------------------------
泛型方法:
需求:我希望在一个工厂中接私活,定义出一个功能行为,接收任意类型的数据,动态返回该类型的数据,可以实现嘛??
可以,但是只能通过泛型方法实现
泛型方法格式:表示在一个方法中定义一个未知的类型
方法修饰符 <任意大写字母>返回值类型 方法名(参数列表){
方法体;
}
泛型方法的泛型类型何时确定???
当方法被调用时才确定,一般泛型方法中字母尽量不要与泛型类的字母一致
注意:泛型类和泛型方法是可以分开定义
*/
//我现在定义了一个A类型的工厂
//public class Factory<A,B,C> {
public class Factory<A> {
//修理指定类型的产品,修理什么,就返回什么
public A fix(A a) {
public A fix(A a) {//使用了泛型类中的A类型的普通方法
System.out.println("东西修好了");
return a;
}
@@ -29,4 +43,10 @@ public class Factory<A> {
return o;
}*/
//定义了一个未知类型B的泛型方法接私活
public <B> B fixAll(B b){
System.out.println("接了个私活了修理了东西");
return b;
}
}

View File

@@ -9,7 +9,7 @@ public class GenericClassDemo05 {
//买了一个平板
Pad pad = new Pad();
pad.play();
System.out.println("------------");
System.out.println("----泛型类的使用--------");
//手机和平板坏了,找专门的厂家去修理
Factory<Phone> phoneFactory = new Factory<>();
Phone fixedPhone = phoneFactory.fix(phone);
@@ -18,5 +18,15 @@ public class GenericClassDemo05 {
Factory<Pad> padFactory = new Factory<>();
Pad fixedPad = padFactory.fix(pad);
fixedPad.play();
System.out.println("--------泛型方法的使用---------------");
Factory<Phone> factory = new Factory<>();
Phone phone1 = factory.fix(phone);
phone1.call();
//我发现他修理得很好,顺嘴问了下平板会修吗???
Pad pad1 = factory.fixAll(pad);
pad1.play();
Phone phone2 = factory.fixAll(phone);
phone2.call();
}
}