This commit is contained in:
Looly 2023-06-24 19:36:10 +08:00
parent 4f26d3aba5
commit ece736d5d4
3 changed files with 47 additions and 2 deletions

View File

@ -2110,7 +2110,7 @@ public class CollUtil {
* @since 4.6.5
*/
public static <T extends Comparable<? super T>> T max(final Collection<T> coll) {
return Collections.max(coll);
return isEmpty(coll) ? null : Collections.max(coll);
}
/**
@ -2123,7 +2123,7 @@ public class CollUtil {
* @since 4.6.5
*/
public static <T extends Comparable<? super T>> T min(final Collection<T> coll) {
return Collections.min(coll);
return isEmpty(coll) ? null : Collections.min(coll);
}
/**

View File

@ -1163,4 +1163,22 @@ public class CollUtilTest {
Assertions.assertFalse(CollUtil.allMatch(list, i -> i == 1));
Assertions.assertTrue(CollUtil.allMatch(list, i -> i <= 6));
}
@Test
public void maxTest() {
final List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
Assertions.assertEquals((Integer) 6, CollUtil.max(list));
}
@SuppressWarnings({"rawtypes", "unchecked"})
@Test
public void maxEmptyTest() {
final List<? extends Comparable> emptyList = Collections.emptyList();
Assertions.assertNull(CollUtil.max(emptyList));
}
@Test
public void minNullTest() {
Assertions.assertNull(CollUtil.max(null));
}
}

View File

@ -0,0 +1,27 @@
/*
* Copyright (c) 2023 looly(loolly@aliyun.com)
* Hutool is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
package org.dromara.hutool.setting;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class IssueI7EWGOTest {
@Test
void loadTest() {
final Setting setting1 = SettingUtil.get("test");
final Setting setting2 = new Setting("test.setting");
Assertions.assertNotNull(setting1);
Assertions.assertNotNull(setting2);
}
}