ObjectUtils ํด๋ž˜์Šค ์†Œ๊ฐœ

ํ–‰๋™ ์–‘์‹:

allNotNull(๊ฐœ์ฒด...๊ฐ’) ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ null์ด ์•„๋‹Œ์ง€ ํ™•์ธ
allNull(๊ฐœ์ฒด...๊ฐ’) ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ null์ธ์ง€ ํ™•์ธ
anyNotNull(๊ฐ์ฒด...๊ฐ’) ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฐ์ฒด๊ฐ€ null์ด ์•„๋‹Œ์ง€ ํ™•์ธ
anyNull(๊ฐ์ฒด... ๊ฐ’) ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฐ์ฒด๊ฐ€ null์ธ์ง€ ํ™•์ธ
ํด๋ก (T obj) ๊ฐœ์ฒด ๋ณต์ œ
ํด๋ก IfPossible(T obj) ๊ฐœ์ฒด๋ฅผ ๋ณต์ œํ•˜๊ฑฐ๋‚˜ ์›๋ณธ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋น„๊ต(T c1, T c2) ๊ฐœ์ฒด ๋น„๊ต
defaultIfNull(T ๊ฐœ์ฒด, T defaultValue) ๊ฐ์ฒด๊ฐ€ null์ธ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ™์Œ(๊ฐ์ฒด ๊ฐ์ฒด1, ๊ฐ์ฒด ๊ฐ์ฒด2) ๋‘ ๊ฐœ์ฒด๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
notEqual(๊ฐ์ฒด ๊ฐ์ฒด1, ๊ฐ์ฒด ๊ฐ์ฒด2) ๋‘ ๊ฐœ์ฒด๊ฐ€ ๊ฐ™์ง€ ์•Š์€์ง€ ํ™•์ธ
firstNonNull(T...๊ฐ’) null์ด ์•„๋‹Œ ์ฒซ ๋ฒˆ์งธ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
getFirstNonNull(๊ณต๊ธ‰์ž ... ๊ณต๊ธ‰์ž) null์ด ์•„๋‹Œ ์ฒซ ๋ฒˆ์งธ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
getIfNull(T ๊ฐœ์ฒด, ๊ณต๊ธ‰์ž default๊ณต๊ธ‰์ž) null์ด ์•„๋‹ˆ๋ฉด ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ „๋‹ฌ๋œ Supplier์˜ Supplier.get() ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด์‹œ์ฝ”๋“œ(obj) ๊ฐœ์ฒด์˜ hashCode๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
hashCodeMulti(๊ฐ์ฒด...๊ฐ์ฒด) ๊ฐœ์ฒด ๊ทธ๋ฃน์— ๋Œ€ํ•œ hashCode๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
isEmpty(๊ฐ์ฒด ๊ฐ์ฒด) ๊ฐ์ฒด๊ฐ€ ๋น„์–ด ์žˆ๋Š”์ง€ ๋˜๋Š” null์ธ์ง€ ํ™•์ธ
isNotEmpty(๊ฐ์ฒด ๊ฐ์ฒด) ๊ฐ์ฒด๊ฐ€ ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ null์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
requireNonEmpty(T obj) ๊ฐœ์ฒด๊ฐ€ null์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ˆ์™ธ๋ฅผ throwํ•ฉ๋‹ˆ๋‹ค.
requireNonEmpty(T obj, ๋ฌธ์ž์—ด ๋ฉ”์‹œ์ง€) ๊ฐœ์ฒด๊ฐ€ null์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ˆ์™ธ๋ฅผ throwํ•ฉ๋‹ˆ๋‹ค.
identityToString(๊ฐ์ฒด ๊ฐ์ฒด) ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
toString(๊ฐ์ฒด ๊ฐ์ฒด) ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
toString(๊ฐœ์ฒด ๊ฐ์ฒด, ๋ฌธ์ž์—ด nullStr) ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
toString(๊ฐœ์ฒด ๊ฐ์ฒด, ๊ณต๊ธ‰์ž ๊ณต๊ธ‰์ž) ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๊ทธ๋ฃน์—์„œ ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์‚ฌ์šฉํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ObjectUtils.compare()

์ด ๋ฉ”์„œ๋“œ๋Š” ๋น„๊ต๊ธฐ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค: ๋ณด๋‹ค ํผ, ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ. ๊ฐœ์ฒด๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์„œ๋“œ ์„œ๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

public static <T extends Comparable<? super T>> int compare(final T c1, final T c2);
public static <T extends Comparable<? super T>> int compare(final T c1, final T c2, final boolean nullGreater);

์„ธ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜( nullGreater )๊ฐ€ true ์ด๋ฉด null ์€ ํ•ญ์ƒ null ์ด ์•„๋‹Œ ๊ฐ’๋ณด๋‹ค ํฐ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค . ๋ฉ”์„œ๋“œ๋Š” c1> c2์ด๋ฉด ์–‘์ˆ˜, c1<c2์ด๋ฉด ์Œ์ˆ˜, c1 == c2์ด๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ:

String firstValue = "codeGym";
String secondValue = "codeGym";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();

firstValue = "codeGym";
secondValue = null;
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();

firstValue = "";
secondValue = "codeGym";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();

ํ”„๋กœ๊ทธ๋žจ์ด ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

0
1
-8

ObjectUtils.isNotEmpty()

isNotEmpty() ๋ฉ”์†Œ๋“œ๋Š” ์ž์‹ ์—๊ฒŒ ์ „๋‹ฌ๋œ ๊ฐ์ฒด๊ฐ€ ๋น„์–ด ์žˆ์ง€๋„ ์•Š๊ณ  null ๋„ ์•„๋‹Œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค .

๋ฉ”์†Œ๋“œ ์„œ๋ช…:

public static boolean isNotEmpty(final Object object)

์˜ˆ:

List<String> values = new ArrayList<>();
System.out.println(ObjectUtils.isNotEmpty(values));

values.add("codeGym");
System.out.println(ObjectUtils.isNotEmpty(values));

values = null;
System.out.println(ObjectUtils.isNotEmpty(values));

๊ฒฐ๊ณผ๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

false
true
false

java.util.๊ฐ์ฒด

Java ๊ฐœ๋ฐœ์ž๋Š” ObjectUtils ์˜ ์•„์ด๋””์–ด๋ฅผ ์ •๋ง ์ข‹์•„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— JDK 7์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

isNull(Objectobj) ๊ฐ์ฒด๊ฐ€ null์ธ์ง€ ํ™•์ธ
nonNull(๊ฐ์ฒด ๊ฐ์ฒด) ๊ฐ์ฒด๊ฐ€ null์ด ์•„๋‹Œ์ง€ ํ™•์ธ
toString(๊ฐ์ฒด) ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
toString(๊ฐ์ฒด, ๋ฌธ์ž์—ด nullDefault) ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
๋ถ€์šธ ๊ฐ™์Œ(๊ฐ์ฒด a,๊ฐ์ฒด b) ๊ฐœ์ฒด ๋น„๊ต
๋ถ€์šธ deepEquals(๊ฐ์ฒด a,๊ฐ์ฒด b) ๊ฐœ์ฒด ๋น„๊ต
T requireNonNull(T obj) ์ „๋‹ฌ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ null์ด ์•„๋‹Œ์ง€ ํ™•์ธ
T requireNonNull(T obj,String ๋ฉ”์‹œ์ง€) ์ „๋‹ฌ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ null์ด ์•„๋‹Œ์ง€ ํ™•์ธ
int hashCode(๊ฐ์ฒด o) ๊ฐœ์ฒด์˜ hashCode๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
int ํ•ด์‹œ(๊ฐœ์ฒด...๊ฐ’) ๊ฐœ์ฒด ๊ทธ๋ฃน์— ๋Œ€ํ•œ hashCode๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
์ •์ˆ˜ ๋น„๊ต(T a, T b, ๋น„๊ต๊ธฐ c) ๊ฐœ์ฒด ๋น„๊ต

java.util.Objects ํด๋ž˜์Šค๋Š” JDK์˜ ์ผ๋ถ€ ์ด๋ฏ€๋กœ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์ฝ์„ ๋•Œ ObjectUtils ์˜ ์˜ต์…˜์„ ๋ณด๊ฒŒ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฉฐ ์ด๋Š” ์ข…์ข… ์˜คํ”ˆ ์†Œ์Šค์—์„œ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๊ทธ๋“ค์ด ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .