代码改变世界

随笔分类 -  Java世界

Guava-Optional可空类型

2015-01-18 15:06 by 破狼, 6403 阅读, 收藏, 编辑
摘要: 接上篇Guava之Joiner和Splitter,本篇将介绍Guava的另外一个有用的对象Optional,这在Java中Google Guava首先给我们提出可空对象模型的。在其他语言如c#这是已经存在很久的模式,并包含在.net类库中Nullable(Int?也是一个可空类型)。Null suc... 阅读全文

guava之Joiner 和 Splitter

2015-01-10 13:10 by 破狼, 34288 阅读, 收藏, 编辑
摘要: 最近在给客户准备一个Guava的分享,所以会陆续的更新关于Guava更多的细节分享。本文将记录Guava中得字符串处理Joiner(连接)和Splitter(分割)处理。Joiner首先我们来看看下面我们经常遇见的一个案例:题目:对于一个如下定义List List list = new Arra... 阅读全文

Guava - EventBus(事件总线)

2014-11-30 10:45 by 破狼, 32120 阅读, 收藏, 编辑
摘要: Guava在guava-libraries中为我们提供了事件总线EventBus库,它是事件发布订阅模式的实现,让我们能在领域驱动设计(DDD)中以事件的弱引用本质对我们的模块和领域边界很好的解耦设计。不再多的废话,直奔Guava EventBus主题。首先Guava为我们提供了同步事件EventB... 阅读全文

Guava - 并行编程Futures

2014-11-21 21:02 by 破狼, 21498 阅读, 收藏, 编辑
摘要: Guava为Java并行编程Future提供了很多有用扩展,其主要接口为ListenableFuture,并借助于Futures静态扩展。继承至Future的ListenableFuture,允许我们添加回调函数在线程运算完成时返回值或者方法执行完成立即返回。对ListenableFuture添加回... 阅读全文

Mockito自定义verify参数Matcher

2014-11-12 15:13 by 破狼, 7491 阅读, 收藏, 编辑
摘要: 在TDD开发中,也许我们会遇见对一些重要的无返回值的行为测试,比如在用户的积分DB中增加用户的积分,这个行为对于我们的业务具有重要的价值,所以我们也希望能测试覆盖这部分业务价值。这个时候我们就得使用mockito带来的verify断言,但verify的参数断言主要有eq,或者any常见的方式。有时我... 阅读全文

Android setTag方法的key问题

2014-09-29 11:07 by 破狼, 9781 阅读, 收藏, 编辑
摘要: android在设计View类时,为了能储存一些辅助信息,设计一个一个setTag/getTag的方法。这让我想起在Winform设计中每个Control同样存在一个Tag。今天要说的是我最近学习android遇见的setTag的坑。一般情况下我们只需要使用唯一参数的setTag方法。但有时我们需要... 阅读全文

记录maven java.lang.String cannot be cast to XX error

2013-09-10 21:47 by 破狼, 4042 阅读, 收藏, 编辑
摘要: 在项目开发中自定义了一个maven plugin,在本地能够很好的工作,但是在ci server上却无法正常工作报错为:----------------------------------------------------- at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) ... 阅读全文

Aspectj 实现Method条件运行

2013-07-07 11:23 by 破狼, 3291 阅读, 收藏, 编辑
摘要: 最近我花了半个小时实现了一个Method的按自定义条件运行的plugin,Condition-Run 。实现场景是由于我所工作的客户经常会是在同一个代码集上实现多个Brand,所以有些功能只会限制是几个brand调用,而其他的调用则不该调用。还有因为持续交互,我们会不停的release新的功能得到快速的反馈,在这前提下我们会经常遇见在我们刚开发完一个brand的产品代码,就要面临release,所以我们希望其不该对其他的brand产生影响。 面对这样的需求初级程序员有些人肯定会觉得没什么了不起的啊,不就是几个if/else或者switch/case。我和我的团队对代码有一种天生的洁癖,对于太. 阅读全文

集成服务监控器-green.monitor发布

2013-05-26 18:42 by 破狼, 2113 阅读, 收藏, 编辑
摘要: 在大型企业应用开发中,一个项目经常需要依赖于多个项目集成,经常某个集成服务的升级或者不工作,会导致你所工作的服务也挂掉,甚至影响你的开发流程。你是否还在接到测试团队或者运维团队的某个Bug,而自己花费了大量时间终于查出来是某个集成服务升级或异常,在这里浪费了大量时间,在笔者为所在项目建立了一个第三方集成服务监控的Monitor,去实时监控项目所依赖的所有集成服务,数据库。现在开源在github https://github.com/greengerong/green-monitor,在其sample目录下有个使用demo。mavendependency<dependency> &l 阅读全文

CSV和集合对象基于Annotation操作封装

2013-05-16 21:44 by 破狼, 1117 阅读, 收藏, 编辑
摘要: 随着项目上线,暂时处于闲置状态,所以趁闲带着团队对在这一年项目中做的比较好的组件,工具和实践总结和抽取出来,在我后续的随笔中将会陆续发布出来。今天主要是一个简单的maven小组件,对opencsv基于Annotation简单的封装,使得我们可以轻易的将CSV文件转化为List对像和把List对像导出为CSV文件。 项目托管地址于github https://github.com/greengerong/opencsv-utils。 对于代码就不用多说了,简单看看如何使用。Object 1 package opencsv.utils; 2 3 4 5 public class Pers... 阅读全文

Javascript覆盖率(jstd)报表解析Maven插件

2012-12-16 22:03 by 破狼, 1727 阅读, 收藏, 编辑
摘要: 最近项目中希望加入javascript覆盖率统计,由于项目的单元测试用的google的jstd(javascript test driver),jstd生成<config filename>-coverage.dat LCOV 格式,这是一种linux上格式,在window上网上搜寻了很久没找到可用的maven组件。最后狠下心来自己写一个。代码已经放在github上,并且maven插件也成功release到官网。coverage 文件格式: 项目主要采用java将coverage文件解析成java object在利用json序列化输出到固定位置的javascript文件。在利用an 阅读全文