2017-03-09 3 views

답변

11

당신은 Object

Object d = true; 
d = 22; 
d = "hi"; 

사용할 수 있습니다 당신은 자바를 삼도록 악

Object d = true; 
System.out.println(d instanceof Boolean); // true 
d = 22; 
d = "hi";  
System.out.println(d instanceof Integer); // false 
System.out.println(d instanceof String); // true 

The Type Comparison Operator instanceof

+2

'instanceof '의 사용은 보통 냄새가 좋지 않은 유형의 분석에서 벗어난 코드 냄새이며 자신이하는 일을 모르는 경우 지저분한 버그가있는 코드를 만드는 경향이 있습니다. –

+0

@Lew, 당신은 100 % 정확합니다. 그러나 게시 된 anwser 질문을 재생합니다. –

+0

나는 동적 변수가 C#의'동적'처럼 런타임에 사용법을 해결할 것으로 기대한다. 즉,'d.foo()'는 런타임에'd'가'foo' 메서드를 가지고 있는지 검사 할 것입니다. – chris

1

동적 입력 들고 데이터 d의 유형을 확인 instanceof 연산자를 사용할 수 있습니다 . Swift와 C#처럼 Java는 강력하고 안전한 코드로 연결됩니다. 그래서 어둠의 편에 굴복하고 반란군의 길을 제쳐두십시오. 유형 중심 프로그래밍의 힘을 받아들입니다. 당신은 그것을 위해 더 나을 것입니다.

+0

C#은 동적 입력을 위해 '동적'을가집니다. JSON 및 COM과의 상호 작용과 같은 특정 시나리오에서 유용합니다. – chris

+0

나는 동의한다, 나는 가능한 한 동적 인 것을 피한다, 나는 강하게 타자를 치는 접근법을 사랑한다. 몇 가지 예외적 인 경우에 대해 알아야했습니다. – shal

1

JVM에서 실행되는 그루비 언어로 믹싱을 볼 수 있습니다. 이것은 유형이 유추합니다.

+0

Java에 형식 유추가 있습니다. 유형 유추는 동적 타이핑이 아닙니다. 유형 유추는 강력한 타이핑을위한 전략입니다. –

관련 문제