πŸ“† Today I Learned(κ°œλ°œμ–Έμ–΄ν•™μŠ΅)/JAVA

[JAVA] instanceof (객체 νƒ€μž… 확인)

JinSeong 2023. 11. 27. 22:44

T1) instanceof μ—°μ‚°μž

  • λ§€κ°œλ³€μˆ˜μ˜ λ‹€ν˜•μ„±μœΌλ‘œ 인해 μ‹€μ œλ‘œ μ–΄λ–€ 객체가 λ§€κ°œκ°’μœΌλ‘œ ν™œμš©λ˜κ³ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” 방법
  • λ§€κ°œλ³€μˆ˜ 뿐만 μ•„λ‹ˆλΌ λ³€μˆ˜κ°€ μ°Έμ‘°ν•˜λŠ” 객체의 νƒ€μž…μ„ ν™•μΈν•˜κ³ μžν• λ•Œ ν™œμš©
  • instanceof μ—°μ‚°μžμ˜ μ’Œν•­μ—λŠ” 객체가 였고 μš°ν•­μ—λŠ” νƒ€μž…μ΄ μ˜¨λ‹€. νƒ€μž…μ΄ κ°™μœΌλ©΄ true μ•„λ‹ˆλ©΄ false
  • Java 12λΆ€ν„°λŠ” instanceofμ—°μ‚°μ˜ κ²°κ³Όκ°€ true일 경우, 우츑 νƒ€μž… λ³€μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆκΈ°λ•Œλ¬Έμ— κ°•μ œνƒ€μž…λ³€ν™˜μ„ ν•˜μ§€μ•Šμ•„λ„ λœλ‹€.
/*κΈ°λ³Έν˜•νƒœ*/
boolean result = 객체 instanceof νƒ€μž…;
// μžλ°” 12 이전 : κΉ…μ œ νƒ€μž… λ³€ν™˜ ν•„μš”
public void method(Parent parent) {
	if(parent instanceof Child) {
    	Child child = (Child) parent;
    }
}

// μžλ°” 12 이후 : κ°•μ œ νƒ€μž… λ³€ν™˜ 없이 λ³€μˆ˜ μ‚¬μš©κ°€λŠ₯
public void method(Parent parent) {
	if(parent instanceof Child) {
    	//child λ³€μˆ˜ μ‚¬μš©
    }
}

 

 

 

 

 

 

좜처:이것이 μžλ°”λ‹€(ꡐ윑 ν˜„μž₯μ—μ„œ κ°€μž₯ 많이 μ“°μ΄λŠ” JAVA ν”„λ‘œκ·Έλž˜λ°μ˜ κΈ°λ³Έμ„œ)
https://search.shopping.naver.com/book/catalog/34238594620?cat_id=50010920&frm=PBOKMOD&query=%EC%9D%B4%EA%B2%83%EC%9D%B4%EC%9E%90%EB%B0%94%EB%8B%A4&NaPm=ct%3Dlocm18y8%7Cci%3D0e64b25f86693278b2d96906cbe4b981fe74c6d5%7Ctr%3Dboknx%7Csn%3D95694%7Chk%3D95e00da716b01b77d749d200eae34c788eb63950