#java #groovy
#java #groovy
Вопрос:
У меня есть класс groovy
@Immutable
class StatusCode {
final int statusCode
}
Я хочу создать объект этого класса в другом классе Java, скажем, Test.Java . Но когда я использую,
public class Test{
StatusCode statusCode;
public void setStatusCode(int statusCode)
{
this.statusCode = new StatusCode(statusCode);
}
}
В нем говорится, что конструктор отсутствует. Как мне создать экземпляр этого объекта?
Комментарии:
1. не могли бы вы опубликовать подробности ошибки здесь?
Ответ №1:
Код Groovy может быть скомпилирован в байт-код Java с помощью groovyc. Это даст вам действительный класс Java, на который вы можете ссылаться из любого другого класса Java. Вам все равно нужно иметь groovy runtime JAR в вашем claspath.
Возможно, компилятор Groovy сгенерирует для вас нужный конструктор, но я не уверен. Если нет, вам нужно будет явно закодировать его в классе Groovy.
Комментарии:
1. Если вы используете groovy 1.8, вы можете использовать аннотацию TupleConstructor для добавления конструкторов для вас
2. @Tim — неизменяемая аннотация создает конструкторы кортежей, а также конструктор map.
3. @winstaan74 так оно и есть … извините за это :-/