Groovy / grails 데이터 유형을 결정하는 방법은 무엇입니까?


176

groovy에서 데이터 유형을 결정하는 가장 좋은 방법은 무엇입니까?

날짜 등의 경우 출력을 다르게 형식화하고 싶습니다.

답변:


244

객체의 클래스를 결정하려면 다음을 호출하십시오.

someObject.getClass()

someObject.class대부분의 경우 이것을 축약 할 수 있습니다 . 그러나 이것을 사용하면 Map키 'class'로 값을 검색하려고 시도합니다. 이 때문에 항상 사용합니다getClass() 조금 더 길어도 합니다.

객체가 특정 인터페이스를 구현하거나 특정 클래스 (예 : 날짜)를 확장하는지 확인하려면 다음을 사용하십시오.

(somObject instanceof Date)

또는 객체 의 클래스가 서브 클래스가 아닌 특정 클래스 인지 정확히 확인 하려면 다음을 사용하십시오.

(somObject.getClass() == Date)

2
instanceof인터페이스를 기반으로 필터링하는 데 좋습니다.
— cdeszaq

최신 그루비 (2.3.7)에서 적어도, 우리는 또한 someObject.class를 쓸 수 있습니다
— loloof64

5
대부분의 경우에 작동하지만 모든에서, 예를 들면 @LaurentBERNABE Map예
— DONAL

당신이 맞습니다 :이 경우 우리는 null을 얻습니다. 실수로 사과드립니다.
— loloof64

그럼이게 뭐야? def test = {} println test.getClass() Script1 $ _run_closure1 클래스
— Petrunov

33

객체 유형을 확인하는 간단한 그루비 방법 :

somObject in Date

인터페이스에도 적용 할 수 있습니다.


3

Dónal의 답변에 다른 옵션을 추가하기 위해 여전히 좋은 java.lang.Object.getClass()방법을 사용할 수 있습니다 .


0

멤버쉽 연산자 isCase ()를 사용할 수 있습니다.

assert Date.isCase(new Date())

-20

somObject instanceof Date

해야한다

somObject instanceOf Date


11
이것은 정확하지 않습니다. instanceof모두 소문자 여야합니다.
— cdeszaq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.