Skip to content

Commit 5d74f84

Browse files
committed
泛型方法返回三个可比较对象的最大值
1 parent b80ad56 commit 5d74f84

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

generics/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
- [x] [Generic6__泛型通配符](src/main/java/com/cpucode/generics/Generic6.java)
1616
- [x] [Generic7__受限泛型](src/main/java/com/cpucode/generics/Generic7.java)
1717
- [x] [泛型方法打印不同类型的数组元素](src/main/java/com/cpucode/generics/methodTest/GenericMethodTest.java)
18+
- [x] [泛型方法返回三个可比较对象的最大值](src/main/java/com/cpucode/generics/maximum/MaximumTest.java)
19+
1820

1921
- [返回目录](#文件目录)
2022

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.cpucode.generics.maximum;
2+
3+
/**
4+
* 泛型方法返回三个可比较对象的最大值
5+
* T - Type(Java 类)
6+
*
7+
* @author : cpucode
8+
* @date : 2021/12/20 14:44
9+
* @github : https://github.com/CPU-Code
10+
* @csdn : https://blog.csdn.net/qq_44226094
11+
*/
12+
public class MaximumTest {
13+
public static void main(String[] args) {
14+
Integer x = 3;
15+
Integer y = 4;
16+
Integer z = 5;
17+
18+
System.out.printf( "%d, %d 和 %d 中最大的数为 %d\n\n",
19+
x, y, z, maximum(x, y, z));
20+
21+
Double doubleX = 6.6;
22+
Double doubleY = 8.8;
23+
Double doubleZ = 9.9;
24+
25+
System.out.printf( "%.1f, %.1f 和 %.1f 中最大的数为 %.1f\n\n",
26+
doubleX, doubleY, doubleZ, maximum(doubleX, doubleY, doubleZ));
27+
28+
String stringX = "cpu";
29+
String stringY = "code";
30+
String stringZ = "cpuCode";
31+
32+
System.out.printf( "%s, %s 和 %s 中最大的数为 %s\n","pear",
33+
stringX, stringY , stringZ, maximum(stringX, stringY, stringZ));
34+
}
35+
36+
public static <T extends Comparable<T>> T maximum(T x, T y, T z) {
37+
// 假设x是初始最大值
38+
T max = x;
39+
40+
if (y.compareTo(max) > 0) {
41+
//y 更大
42+
max = y;
43+
}
44+
if (z.compareTo(max) > 0) {
45+
// 现在 z 更大
46+
max = z;
47+
}
48+
49+
// 返回最大对象
50+
return max;
51+
}
52+
}

0 commit comments

Comments
 (0)