2014-10-15 3 views
1

JComponent 배열 변수를 사용하여 JTextField 및 JComboBox 구성 요소를 모두 보유합니다. 조건문에 사용하기 위해 JComponent의 유형을 검사하는 방법이 내장되어 있습니까? API에서 적합한 메소드를 찾을 수없는 것 같습니다.특정 유형의 JComponent 가져 오기

+4

if (comp instanceof JTextField) 등 ... – splungebob

+0

아, 물론이 트릭을 수행해야합니다. – sage88

답변

4

API가 아닌 언어 기능입니다. 당신이 blahSomeClass의 인스턴스인지 여부를 확인하려면

, 당신은 단지 쓰기 일반적으로 당신이 그 클래스의 것으로 취급하기를 원할 것입니다, 그래서 당신이 그것을 던져 것

if (blah instanceof SomeClass) { 
    //do stuff 
} 

:

if (blah instanceof SomeClass) { 
    SomeClass someBlah = (SomeClass) blah; 
    //do stuff 
} 

instanceof으로 확인했기 때문에 전송에 실패하지 못할 수도 있습니다. 이 정확한 유형을 확인하지만, blah 여부를 SomeClass호환되어 있지 않으며

참고; 즉 SomeClass 또는 SomeClass의 하위 클래스인지 여부를 나타냅니다.

또한 대부분의 사람들은 instanceof을별로 신경 쓰지 않아야한다고 생각해야합니다. 일반적으로 나쁜 디자인의 부작용으로 나타납니다. (하지만 은 항상이 아닙니다.)

+0

감사합니다. @ splungebob의 의견은 필자가 필요로하는 모든 것이었지만, 미래의 정보를 필요로하는 모든 사람들에게 똑같은 답을 표시 할 것입니다. – sage88

관련 문제