Search

๊ฐ์ฒด ํƒ€์ž… ํ™•์ธ - instanceof

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 ์ด์ƒ์—์„œ๋Š” ํŒจํ„ด ๋งค์นญ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ ์ž‘์„ฑ์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.