instanceof
instanceof ์ฐ์ฐ์๋ Java์์ ๊ฐ์ฒด๊ฐ ํน์ ํด๋์ค์ ์ธ์คํด์ค์ธ์ง ๋๋ ํน์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋์ง ํ์ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ์ฒด์ ํ์
์ ๋ฐํ์์ ๊ฒ์ฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
๊ธฐ๋ณธ ๋ฌธ๋ฒ
๊ฐ์ฒด instanceof ํ์
Java
๋ณต์ฌ
์ ํํ์์ '๊ฐ์ฒด'๊ฐ 'ํ์
'์ ์ธ์คํด์ค์ด๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํฉ๋๋ค.
์ฌ์ฉ ์์
public class Main {
public static void main(String[] args) {
String str = "Hello";
// String์ Object์ ํ์ ํด๋์ค์ด๋ฏ๋ก true
boolean result1 = str instanceof Object; // true
// String์ CharSequence ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ฏ๋ก true
boolean result2 = str instanceof CharSequence; // true
// String์ StringBuilder์ ์ธ์คํด์ค๊ฐ ์๋๋ฏ๋ก false
boolean result3 = str instanceof StringBuilder; // ์ปดํ์ผ ์ค๋ฅ!
// null์ ์ด๋ค ํ์
์ ์ธ์คํด์ค๋ ์๋
String nullStr = null;
boolean result4 = nullStr instanceof String; // false
System.out.println("str instanceof Object: " + result1);
System.out.println("str instanceof CharSequence: " + result2);
System.out.println("nullStr instanceof String: " + result4);
}
}
Java
๋ณต์ฌ
์ฃผ์์ฌํญ
โข
์ปดํ์ผ ์์ ์ ๋ ํ์
๊ฐ์ ์์ ๊ด๊ณ๊ฐ ์์ผ๋ฉด ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
โข
null ๊ฐ์ฒด์ ๋ํด instanceof ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ํญ์ false๋ฅผ ๋ฐํํฉ๋๋ค.
โข
instanceof๋ ์ฃผ๋ก ๊ฐ์ฒด ์บ์คํ
์ ์ ํ์
๊ฒ์ฌ๋ฅผ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
Java 16๋ถํฐ์ ํจํด ๋งค์นญ
Java 16๋ถํฐ๋ instanceof์ ํจ๊ป ํจํด ๋งค์นญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
// ๊ธฐ์กด ๋ฐฉ์
if (obj instanceof String) {
String str = (String) obj;
// str ์ฌ์ฉ
}
// Java 16+ ํจํด ๋งค์นญ ๋ฐฉ์
if (obj instanceof String str) {
// ๋ฐ๋ก str ์ฌ์ฉ ๊ฐ๋ฅ
}
Java
๋ณต์ฌ
ํ์ฉ ์๋๋ฆฌ์ค
โข
๋คํ์ฑ์ ํ์ฉํ ๊ฐ์ฒด ์ฒ๋ฆฌ ์ ํ์
ํ์ธ
โข
์์ธ ์ฒ๋ฆฌ ์ ์์ธ ํ์
๊ตฌ๋ถ
โข
Collection ๋ด ๊ฐ์ฒด ํํฐ๋ง
instanceof ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋๋ ์ผ๋ฐ์ ์ผ๋ก ํ์
๊ฒ์ฌ์ ์บ์คํ
์ด ํจ๊ป ์ด๋ฃจ์ด์ง๋ฏ๋ก, Java 16 ์ด์์์๋ ํจํด ๋งค์นญ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๊ฐ๊ฒฐํ ์ฝ๋ ์์ฑ์ ๋์์ด ๋ฉ๋๋ค.