Grava 工具

本文详细介绍了Java中常用的工具类,包括Preconditions进行参数校验、Objects处理对象操作、Strings处理字符串、Lists与Maps用于集合操作等。同时,还介绍了排序、过滤、缓存以及不可变集合的使用方法。

javadoc

好文

判断:Preconditions
判空,如为null则抛NullPointException

this.type = Preconditions.checkNotNull(val);

检查方法参数,如果表达式为false,则抛IllegalArgumentException
public someMethod(String name, String [] names) {
		Preconditions.checkArgument(!(name == null || names.length < 0), "No names specified");
		...
}

对象: Objects
判空,如为null则赋予默认值
String a = Objects.firstNonNull(avalue, Consts.A)

字符串: String
字符串如果为null则为“”
String a = Strings.nullToEmpty(maybeNullString);

集合:
集合创建:Maps, Lists
Map<String, Map<String, String>> map = Maps.newHashMap();
List<List<Map<String, String>>> list = Lists.newArrayList();

排序:Ordering
Ordering<String> byLengthOrdering = new Ordering<String>() {
     public int compare(String left, String right) {
       return Ints.compare(left.length(), right.length());
     }
};
List<String> result = byLengthOrdering.sortedCopy(stringList);

过滤:Predicate
public String findFundsForId(final int Id) {
		Collection<Fund> funds= getAllFunds();
		Predicate<Fund> fundPredicate = new Predicate<Fund>() {
			@Override
			public boolean apply(Fund fund) {
				return fund.getId() == Id;
			}
		};
		Iterable<Fund> filteredFunds = Iterables.filter(funds, fundPredicate);
		return filteredFunds.toString();
}

分割:
List<Integer>  ids_verylong;
List<List<Integer>> ids_veryshort= Lists.partition(ids_verylong, 10);


缓存:
private static Map<String, String> cache = new MapMaker().expireAfterWrite(8, TimeUnit.HOURS).makeMap();

不可变集合:
new ImmutableList.Builder<String>().addAll(stringList).build();
new ImmutableMap.Builder<String, String>().putAll(stringMap).build();

允许同key的Map:Multimap


IO
文件:
Files.write(msg.getData().getBytes(), new File(filePath));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值