有没有办法自动加载Groovy解释器中的用户类,System.out的方式是自动加载(所以你不必导入System.out使用println)?我希望能够编写使用自定义类的脚本并在groovy解释器中运行脚本,而不必一直需要所有类。是否可以自动将用户类预加载到groovy解释器中?
1
A
回答
2
是的,你只需要创建一个配置文件/ rc文件。只需在〜/ .groovy/groovysh.profile中创建一个文件并将其导入到那里。您还需要确保您想要包含的任何其他类都是CLASSPATH的一部分。
例如:〜/ .groovy作为/ groovysh.profile:
import org.apache.commons.lang.StringUtils
println "in groovysh.profile"
然后运行groovysh并使用从StringUtils的一个方法:
% groovysh
in groovysh.profile
Groovy Shell (1.7.3, JVM: 1.6.0_20)
Type 'help' or '\h' for help.
---------------------------------------------------------------------------------------------------------------------------------
groovy:000> StringUtils.isWhitespace(" ")
===> true
groovy:000>
你可以看到,进口到位(和它也会打印出我在配置文件中的println,这个例子只有在你的classpath中有commons-lang jar文件的情况下才会起作用
请参阅the Groovy Shell mo细节。
0
Groovy向Object添加了一些方法,包括您期望在printWriters上使用的方法,如println
和printf
。他们隐式使用System.out。这实际上就是Groovy如果感觉像System.out是全局可用的。
如果您想默认导入一组类,那么可以在不指定完整软件包名称的情况下使用它们,Ted对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...
一旦这些方法应用到基础对象的metaClass,任何对象都可以调用info("message")
,并把它记录下来,有效地使Logger.global与System.out相同。
相关问题
- 1. 是否可以自动加载ng-view?
- 2. 是否可以将字体动态加载到用户计算机中
- 3. 是否可以自动将用户包含到所有模板?
- 4. [自动释放]是否可以接受?
- 5. 是否可以动态地将rpt加载到子报表中?
- 6. 使用Groovy类加载器
- 7. 自动加载预期类
- 8. 是否可以将对象添加到特定的自动释放池?
- 9. Javascript阵列中的图像URL是否自动预加载到浏览器中?
- 10. 是否可以将JPA注释添加到超类实例变量中?
- 11. 是否可以将像素添加到“自动”值?
- 12. php - 自动加载器的实现,预加载所有类
- 13. Groovy类加载器问题
- 14. 加载类的自动加载器将无法按预期工作
- 15. 是否可以为Java创建自定义类加载器,以有条件地从JAR或CLASS_PATH加载类?
- 16. DDD是否可以解释字符串?
- 17. 是否有人可以解释OVER
- 18. 是否有可能预加载链接,动态加载到页面?
- 19. 是否可以使用64位Python解释器的32位ctypes?
- 20. 是否可以禁用YARV的全局解释器锁?
- 21. 是否可以将方法添加到集合中的类中?
- 22. 是否可以将Rail环境加载到Textmate中?
- 23. 是否可以将Excel文件加载到内存中?
- 24. TStringList是否可以自动释放附加到其项目的对象?
- 25. 是否可以编写自解释的FSM或下推自动机?
- 26. 是否可以将本地化添加到预编译框架?
- 27. 是否有可能将Scheme(lisp)解释器嵌入到iPhone应用程序中?
- 28. 是否可以预先加载uitableview中的所有单元格?
- 29. 是否可以将Hibernate <component>列映射到自定义用户类型?
- 30. 是否可以通过Wp7中的Uri加载用户控件
酷,很好地工作。有没有办法为非交互式groovy脚本解释器(groovy)做同样的事情,还是它只适用于groovysh? – Steve 2010-06-29 00:45:17