Grava 工具

来源:互联网 发布:神经网络算法matlab 编辑:程序博客网 时间:2024/06/03 18:57

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>() {@Overridepublic 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));

0 0