Groovy добавляет в Object несколько методов, включая такие методы, как println
и printf
, которые вы ожидаете от printWriters.Они неявно используют System.out.Это действительно то, что делает groovy, если чувствует, что System.out доступен глобально.
Если вы хотите импортировать набор классов по умолчанию, чтобы их можно было использовать без указания полного имени пакета, комментарий Теда о groovyshПрименяется .profile.
Однако, если вы хотите, чтобы конкретный объект, например System.out, был доступен глобально, чтобы его методы можно было вызывать без ссылки на объект, вы можете добавить некоторые динамические методы в Object.Например, чтобы сделать методы ведения журнала глобального регистратора JDK по умолчанию доступными глобально:
Object.metaClass.info = { String message ->
java.util.logging.Logger.global.info(message)
}
Object.metaClass.warning = { String message ->
java.util.logging.Logger.global.warning(message)
}
Object.metaClass.severe = { String message ->
java.util.logging.Logger.global.severe(message)
}
etc...
После применения этих методов к метаклассу базового объекта любой объект может вызвать info("message")
и эффективно его зарегистрировать.сделать Logger.global доступным так же, как System.out.