2012-03-20 9 views
4

У меня есть приложение Java, которое использует встроенные строчные скрипты, используя GroovyClassLoader. Все отлично работает, пока я не ударил нечетную ошибку при передаче типов Java в скрипт Groovy.java.util.Date Java или Java java.util.Date?

Моя проблема: таким образом, я передаю java.util.Date в качестве параметра в строгий скрипт. Я обнаружил, что у java.util.Date Groovy есть фантастическая функция clearTime(). Однако, когда я пытаюсь вызвать эту функцию я получаю это исключение:

groovy.lang.MissingMethodException: No signature of method: java.util.Date.clearTime() is applicable for argument types:() values: [] 

Я полагаю, это потому, что у меня есть Дата Java, а не Groovy Date. Есть ли способ конвертировать между ними.

Я признаю, что я не совсем понимаю, как Groovy, кажется, переопределяет типы jdk. (Поэтому я даже не знаю, подходит ли это правильная терминология для использования здесь.) Пожалуйста, исправьте меня, если я полностью ошибаюсь в том, что происходит, когда вы создаете java.util.Date внутри Groovy и когда вы передаете один в функцию от Java.

+0

Кроме того, в этом случае я рассматриваю возможность отказа от прохождения дат java и перехода к Джоде. Однако я хотел бы знать, что делает Groovy в мире, когда Java-типы передаются ему. Я уверен, что рано или поздно я снова столкнусь с этой проблемой. –

+0

Я не собираюсь предлагать это как ответ, но для этого я должен использовать Java GregorianCalendar и использовать его set() для установки даты в него, а затем удалить все поля, t нравится. –

+5

Можете ли вы опубликовать пример этого сбоя? Существует нет «Groovy date» как таковой, это обычная дата с метаклассом, который просматривается groovy, выполняя ваш отличный код. –

ответ

0

Хорошо, я узнал о своей неисправности здесь. Мое тестовое приложение было обязательным для того, чтобы побороть 1.8.6 по желанию, но моя основная программа использовала 1.6.5 (функция, которую я пыталась вызвать, была введена в 1.6.7). Eclipse решил не запускать новую версию, когда обновлял свой pom.xml.

Смежные вопросы