null์ ๊ฐ์ฒด์ธ๊ฐ์? ๋๋ ์ ๋ ๊ทธ๋ ์ง ์๋ค๊ณ ๋งํ ์ ์๋ค.
(null instanceof Object)
๊ฐ์น๋ฅผ ๋ถ์ฌํ๋ค๋ ์๋ฏธ์์ false
. null์ ๋ํด ์์์ผ ํ ์ถ๊ฐ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- null ๊ฐ์ด ์๋ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ๊ฐ์ด null์ด๊ณ ๋ฉ์๋๊ฐ ๋น์ ์
x.m()
์ด๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค . ๊ทธ๋ฐ๋ฐ ์ ์ ๋ฉ์๋๋ผ๋ฉด ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ต๋๋ค. ํด๋์ค๋ง ์ค์ ํ๊ณ ๊ฐ์ ๋ฌด์๋๊ธฐ ๋๋ฌธ์ ๋๋ค.x
m
m
x
- ๋ชจ๋ ํด๋์ค์ ๋ํด ํ๋์ null๋ง ์๊ณ ๊ฐ ํด๋์ค๋ง๋ค ๋ณ๋์ null์ด ์์ต๋๋ค. ์ ๋ฅผ ๋ค์ด
((String) null == (Hashtable) null)
. - ๋ฉ์๋๊ฐ ํ์ฉํ๋ ๊ฒฝ์ฐ ๋ฉ์๋์ ๋งค๊ฐ ๋ณ์๋ก null์ ์ ๋ฌํ๋ ๊ฒ์ ์๋ฒฝํ๊ฒ ํ์ฉ๋ฉ๋๋ค(์ผ๋ถ ๋ฉ์๋๋ null ๋งค๊ฐ ๋ณ์๋ฅผ ํ์ฉํ๊ณ ๋ค๋ฅธ ๋ฉ์๋๋ ํ์ฉํ์ง ์์). ์๋ฅผ ๋ค์ด ์ด๋ผ๊ณ ์ธ ์๋
System.out.println (null)
์์ง๋งbutstring.compareTo (null)
์๋ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ null์ด ์์ ํ ๋ช ํํ์ง ์์ ๊ฒฝ์ฐ ๋งค๊ฐ๋ณ์๋ก null์ด ํ์ฉ๋๋์ง ์ฌ๋ถ๋ฅผ ํญ์ ๋ฉ์๋์ javadoc ์ฃผ์์ ํ์ํ์ญ์์ค. - ๋ฒ์ 1.1~1.1.5์ JDK์์๋ ์ต๋ช
๋ด๋ถ ํด๋์ค์ ์์ฑ์ ์ ๋ฆฌํฐ๋ด ์ธ์๋ก null์ ์ ๋ฌํ๋ฉด (
new SomeClass(null) { ...}
์: ์ปดํ์ผ๋ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ null ๊ฐ์ด ์๋ ํํ์์ ์ ๋ฌํ๊ฑฐ๋ ๊ฐ์ ์ธ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.) null, ํ์new SomeClass((String) null) { ...}
- ์ผ๋ฐ์ ์ผ๋ก null์ ์ฌ์ฉํ์ฌ ํํ๋๋ ์ธ ๊ฐ์ง ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
- ์ด๊ธฐํ๋์ง ์์์ต๋๋ค (์ด๊ธฐํ ์์). ์์ง ๊ฐ์ด ํ ๋น๋์ง ์์ ๋ณ์ ๋๋ ์ฌ๋กฏ์ ๋๋ค.
- ์กด์ฌํ์ง ์์/์ ์ฉํ ์ ์์ ์๋ฅผ ๋ค์ด ์ด์ง ํธ๋ฆฌ์ ํฐ๋ฏธ๋ ๋ ธ๋๋ null ์์์ด ์๋ ์ผ๋ฐ ๋ ธ๋๋ผ๊ณ ํ ์ ์์ต๋๋ค.
- ๋น์ด ์์ (๋ฌด์ธ๊ฐ์ ๋น์ด ์์). ์๋ฅผ ๋ค์ด null์ ์ฌ์ฉํ์ฌ ๋น ํธ๋ฆฌ๋ฅผ ๋ํ๋ผ ์ ์์ต๋๋ค. ์ด๋ ์ด์ ์ฌ๋ก์ ์๋นํ ๋ค๋ฅด๋ค๋ ์ ์ ์ ์ํ์ธ์(์ค์ ๋ก ํผ๋๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค). ์ฐจ์ด์ ์ null์ด ํ์ฉ ๊ฐ๋ฅํ ํธ๋ฆฌ ๋ ธ๋์ธ์ง ์ฌ๋ถ ๋๋ null์ด ๊ฐ์ ํธ๋ฆฌ ๋ ธ๋๋ก ์ฒ๋ฆฌํ ํ์๊ฐ ์์์ ์๋ฏธํ๋์ง ์ฌ๋ถ์ ๋๋ค.
-
// null ะพะทะฝะฐัะฐะตั ยซะฝะต ะฟัะธะผะตะฝะธะผะพยป // ะะดะตัั ะฝะตั ะฟัััะพะณะพ ะดะตัะตะฒะฐ. class Node { Object data; Node left, right; void print() { if (left != null) left.print(); System.out.println(data); if (right != null) right.print(); } }
-
// null ะพะทะฝะฐัะฐะตั ะฟัััะพะต ะดะตัะตะฒะพ // ะพะฑัะฐัะธัะต ะฒะฝะธะผะฐะฝะธะต ะฝะฐ ััะฐัะธัะตัะบะธะต ะธ ะฝะตััะฐัะธัะตัะบะธะต ะผะตัะพะดั class Node { Object data; Node left, right; void static print(Node node) { if (node != null) node.print(); } void print() { print(left); System.out.println(data); print(right); } }
-
// ะัะดะตะปัะฝัะน ะบะปะฐัั ะดะปั Empty // null ะฝะต ะธัะฟะพะปัะทัะตััั interface Node { void print(); } class DataNode implements Node{ Object data; Node left, right; void print() { left.print(); System.out.println(data); right.print(); } } class EmptyNode implements Node { void print() { } }
์์ฐจ ์ฝ์ ์ถ๋ ฅ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ด์ง ํธ๋ฆฌ ๋ ธ๋์ ์ธ ๊ฐ์ง ๊ตฌํ์ ๋น๊ตํฉ๋๋ค.
GO TO FULL VERSION