GroovyClassLoader
을 사용하여 내장 된 그루비 스크립트를 실행하는 Java 응용 프로그램이 있습니다. Groovy 스크립트에 Java 유형을 전달하는 동안 이상한 오류가 발생할 때까지 모든 것이 잘 작동합니다.Groovy의 java.util.Date 또는 Java의 java.util.Date?
내 문제는 다음과 같습니다. java.util.Date
을 매개 변수로 groovy 스크립트에 전달합니다. Groovy의 java.util.Date에는 환상적인 clearTime() 함수가 있습니다. 그러나이 함수를 호출하려고하면이 예외가 발생합니다.
groovy.lang.MissingMethodException: No signature of method: java.util.Date.clearTime() is applicable for argument types:() values: []
Groovy Date가 아닌 Java Date가 있기 때문에 이것을 가정합니다. 이 둘 사이의 변환 방법이 있습니까?
그루비가 jdk 유형을 오버라이드하는 것으로 보이는 방식을 완전히 이해하지 못한다는 것을 인정합니다. (너무 많이 사용하기 때문에 이것이 여기서 사용하는 정확한 용어인지는 모르겠다.) Groovy 내부에서 java.util.Date를 생성 할 때 어떤 일이 발생하는지에 대해 완전히 잘못된 것이라면 나에게 수정 해 주겠다. Java의 함수에 추가합니다.
또한이 경우에는 자바 날짜를 전달하고 Joda로 전환하는 것을 고려하고 있습니다. 그러나 Groovy가 Java 유형을 전달할 때 세계에서 무엇을하는지 알고 싶습니다. 조만간 조만간이 문제를 다시 해결할 것이라고 확신합니다. –
나는 이것을 대답으로 보내지 않을 것이다. 그러나 이것에 대한 해킹과 슬래시는 Java GregorianCalendar를 사용하고 set()을 사용하여 날짜를 설정 한 다음 모든 필드를 비운다. 좋아해. –
이 실패 사례를 게시 할 수 있습니까? "그루비 데이트"는 없습니다. 그루비 코드를 실행하는 동안 그루비에 의해 올려지는 메타 클래스가있는 정규 날짜입니다. –