2013年4月26日

摘要: 转自:http://blog.csdn.net/hivon/article/details/4093302这里所说的接口类型,在Java语言和Groovy语言中,当然是既包括了基类类型和接口。所谓"接口类型的动态性",指的是在运行期内给基类或接口动态的添加方法,使得基类以及它的子类、接口的实现,都能访问这些方法。这个功能一向是我比较感兴趣的一个功能。因为我们在编程的实践中,会使用各种各样的应用API,还有JDK,在使用它们的过程中,可能有一些接口及它们的子类我们会经常使用到,但是在使用的过程中,我们又感到非常的不方便。这时候,我们可以使用Categories机制来对我们所使 阅读全文
posted @ 2013-04-26 10:46 只愿软禁 阅读(428) 评论(0) 推荐(0)
摘要: 国内很多的文章都在说Groovy语言的Mixin机制就是Groovy语言的Categories机制。其实,在外面的Blog上,大量有人在讨论Groovy语言应该如何实现它自己的Mixin机制,这就是说明Groovy语言的Mixin机制还没有定型,处在讨论之中。Categories机制当然也能实现部分的Mixin功能,就像Java语言的接口机制,还有组合等等,都能实现部分的Mixin功能。就像C++语言的多继承一样,这些"古老"的机制都能或多或少的实现部分的Mixin功能。其实,Mixin机制也没有想象的那么神秘和复杂。从字面上来看,它是由"mix"和&q 阅读全文
posted @ 2013-04-26 10:36 只愿软禁 阅读(454) 评论(0) 推荐(0)
摘要: 转自:http://blog.csdn.net/hivon/article/details/3215809我们谈到MOP,即“元对象协议”,就是对类或对象的各个元素,如名称、方法、属性等等,在运行期进行实时变化,如修改方法名、属性名,动态增加方法、属性等等的一类编程的统称。比如前面我们所谈到过的“invokeMethod”和“methodMissing”两个方法,就可以用来使得我们在运行期动态的给一个类增加方法,值得注意的是,这种增加是类级别的,即一个类所有的对象都可以增加方法。既然说过了在运行期给一个类动态的增加方法,那么相应的,在运行期给一个类动态的增加属性就是我们接着要考虑的事情。我们都 阅读全文
posted @ 2013-04-26 10:21 只愿软禁 阅读(1823) 评论(0) 推荐(0)
摘要: 转自:http://blog.csdn.net/hivon/article/details/3019631终于要谈到Groovy语言的MOP特性了,我在前面的章节中零星的谈到了它,却始终没有系统的来谈到它。这是因为Groovy语言的MOP特性实在是太灵活了,比如本章节要谈到的“invokeMethod”和“methodMissing”方法,它们的功能有很大的相似之处,而区别却相当的微妙。但是,不管怎么样,Groovy语言的MOP编程都是我们必须掌握的。而这个系列我没有计划多少个部分谈完,跟《Groovy探索之闭包》系列一样,探索一部分说一部分。本节要谈到的“invokeMethod”方法,我们 阅读全文
posted @ 2013-04-26 08:22 只愿软禁 阅读(2179) 评论(0) 推荐(0)
摘要: 转自:http://blog.csdn.net/hivon/article/details/4037600Class当然是Groovy语言从Java语言继承来的,这就是说Groovy语言也继承了Java语言的反射机制。这意味着我们能够像在Java语言里使用反射那样,在Groovy语言里写出诸如下面的代码:package groovy.reflect;import java.lang.reflect.Methodclass Testor { def testDelegate() { 'ok' } static main(args) { def t =... 阅读全文
posted @ 2013-04-26 08:12 只愿软禁 阅读(907) 评论(0) 推荐(0)

2013年4月25日

摘要: 1.点击浏览器工具栏上的 Chrome 菜单,点击设置2.在外观中,选中 显示主页按钮,点击 打开新的标签页旁边的更改 阅读全文
posted @ 2013-04-25 13:03 只愿软禁 阅读(188) 评论(0) 推荐(0)
摘要: I am trying to invoke this method in Java reflectively:publicvoid setFoo(ArrayList<String> foo){this.foo = foo;}The problem is that I want to pass null asnull, so that foo becomes null.However, in the following approach it assumes that there are no arguments, and I getIllegalArgumentException( 阅读全文
posted @ 2013-04-25 12:57 只愿软禁 阅读(261) 评论(0) 推荐(0)
摘要: 1.新建了一个test2文件2.使用git status命令发现test2文件出现在为跟踪状态中3.创建.gitignore文件,输入test24.使用git status命令察看,发现未跟踪状态中没有test2文件了,但是.gitignore出现了,自己可以在.gitignore文件中添加进去vi... 阅读全文
posted @ 2013-04-25 01:05 只愿软禁 阅读(206) 评论(0) 推荐(0)
摘要: git init之后使用git status的情况:git initInitialized empty Git repository in /home/mycode/myGit/testGit2/.git/git status# On branch master## Initial commit#n... 阅读全文
posted @ 2013-04-25 00:48 只愿软禁 阅读(556) 评论(0) 推荐(0)
摘要: git init之后的状态maijunjin@maijunjin-Inspiron-7420:~/mycode/myGit/testGit$ git initInitialized empty Git repository in /home/maijunjin/mycode/myGit/testGit/.git/maijunjin@maijunjin-Inspiron-7420:~/mycode/myGit/testGit$ git status# On branch master## Initial commit#nothing to commit (create/copy files an 阅读全文
posted @ 2013-04-25 00:29 只愿软禁 阅读(694) 评论(0) 推荐(0)