It is an established good practice to validate method arguments at the beginning of the method body. For example you could check that the passed value is not negative before doing some calculation: 1 2 3 4 5 6 public int doSomeCalculation(int value)…
原文链接 译文链接 译者: 沈义扬 前置条件:让方法调用的前置条件判断更简单. Guava在Preconditions类中提供了若干前置条件判断的实用方法,我们强烈建议在Eclipse中静态导入这些方法.每个方法都有三个变种: 没有额外参数:抛出的异常中没有错误消息: 有一个Object对象作为额外参数:抛出的异常使用Object.toString() 作为错误消息: 有一个String对象作为额外参数,并且有一组任意数量的附加Object对象:这个变种处理异常消息的方式有点类似printf,但…
文章转载自:http://my.oschina.net/leejun2005/blog/172328 目录:[ - ] 1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMPORTS 编写漂亮代码 1.Google Collections一览 2.操作lists和maps 3.静态导入和Eclipse模板 4.Guava走马观花 2-深入探索 GOOGLE GUAVA 库 1.The Guava CharMatcher 2.Joiner and Splitter 3.W…
转载地址: https://blog.csdn.net/wisgood/article/details/13297535 原文地址:https://my.oschina.net/leejun2005/blog/172328 以往我们在使用工具包的时候首先想到是著名的Apache的Commons系列,今天我要介绍的是同样出色,并且目前发展比Apache Commons系列更为迅速的Google Guava库.…
早上一上班就想新建一个web项目玩玩,没想到一敲命令创建就失败了,真是出师不利.各种折腾无果,当然我也可以用eclipse直接创建的,就是不甘心被这破问题给耍了.刚刚才发现问题原因,这个结果我也是醉了,太坑爹了. 问题现象: E:\workspace>mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.wulinfeng.memcache -DartifactId=memcache-view -DarchetypeAr…
Google guava工具类的介绍和使用https://blog.csdn.net/wwwdc1012/article/details/82228458 LoadingCache缓存使用(LoadingCache)https://www.cnblogs.com/licunzhi/p/8818838.html Google Guava Cache 全解析https://www.jianshu.com/p/38bd5f1cf2f2 _________________________________…
原文链接 译文链接 译者:沈义扬 范例 1 int logFloor = LongMath.log2(n, FLOOR); 2 int mustNotOverflow = IntMath.checkedMultiply(x, y); 3 long quotient = LongMath.divide(knownMultipleOfThree, 3, RoundingMode.UNNECESSARY); // fail fast on non-multiple of 3 4 BigInteger…
昨天通过几个小程序以及Hangout源码学习了CLI的基本使用,今天就来尝试翻译一下CLI的官方使用手册. 下面将会通过几个部分简单的介绍CLI在应用中的使用场景. 昨天已经联系过几个基本的命令行参数使用场景,可以参考这里 通过使用Apache Commons CLI可以帮助开发者快速构建命令行启动模式,并可以快速生成帮助指令,基于用户启动参数提供不同的服务. 入门样例 下面就举个例子,比如我想输入命令: xxx -t 从而打印出当前的时间. 定义阶段--创建选项 首先要创建Options对象,…
今天又看了下Hangout的源码,一般来说一个开源项目有好几种启动方式--比如可以从命令行启动,也可以从web端启动.今天就看看如何设计命令行启动... Apache Commons CLI Apache Commons CLI是开源的命令行解析工具,它可以帮助开发者快速构建启动命令,并且帮助你组织命令的参数.以及输出列表等. CLI分为三个过程: 定义阶段:在Java代码中定义Optin参数,定义参数.是否需要输入值.简单的描述等 解析阶段:应用程序传入参数后,CLI进行解析 询问阶段:通过查…
Google Guava是什么东西?首先要追溯到2007年的“Google Collections Library”项目,它提供对Java 集合操作的工具类.后来Guava被进化为Java程序员开发必备的工具.Guava可以对字符串,集合,并发,I/O,反射进行操作. 在软件开发过程中,我们自认为可以什么都能做,我们本能的去写自己的类库来处理一些日常的问题.当然,我们认为自己写的代码是坚不可摧的,并且是经过单元测试的.实际上,我们没有我们认为的那么聪明,换句话说,它不在于你有多聪明,而是在于编写…
Apache Commons 是一个关注于可复用的 Java 组件的 Apache 项目.Apache Commons 由三部分构成: Commons Proper - 一个可复用的 Java 组件库. Commons Sandbox - Java 组件开发的工作区. Commons Dormant - 当前非活动状态的组件库. Commons Proper 致力于创建和维护可服用的 Java 组件.这些 Java 组件都是尽可能小地依赖其他的库使得组件能够方便地应用.而且这些组件的开发者尽力地…
假如你正在开发应用程序所调用的组件当中已经使用了 JCL(之前叫 Jakarta Commons Logging,JCL) 的,还有一些组建可能直接调用了 java.util.logging,这时你需要一个桥接器(名字为 XXX-over-slf4j.jar)把他们的日志输出重定向到 SLF4J,所谓的桥接器就是一个假的日志实现工具,比如当你把 jcl-over-slf4j.jar 放到 CLASS_PATH 时,即使某个组件原本是通过 JCL 输出日志的,现在却会被 jcl-over-slf4…
Apache Commons Pool实现了对象池的功能.定义了对象的生成.销毁.激活.钝化等操作及其状态转换,并提供几个默认的对象池实现.在讲述其实现原理前,先提一下其中有几个重要的对象: PooledObject(池对象). PooledObjectFactory(池对象工厂). Object Pool(对象池). 下面分别详细讲解它们的实现. PooledObject(池对象) 用于封装对象(如:线程.数据库连接.TCP连接),将其包裹成可被池管理的对象.提供了两个默认的池对象实现: De…
Apache Commons Pool 故事一则 最近工作中遇到一个由于对commons-pool的使用不当而引发的问题,习得正确的使用姿势后,写下这个简单的故事,帮助理解Apache Commons Pool的工作原理. Apache Commons Pool, Java界无人不知无人不晓的对象池技术, 常用于实现各种连接池, 如数据库连接池, Redis连接池等 下面以租车公司为例子说明这张图,介绍commons pool的基本工作方式: GenericObjectPool(租车公司) 作为…
今天搭建了一个ssh项目环境,整合后,访问项目首页,登录不进去,控制台报错,后来调试代码后,在获取数据库数据后,返回到action时,又进入了action导致死循环,其实这里是两个问题,控制台报错如下: 2015-4-27 20:57:56 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet default threw exceptionjava.lang.ClassNotFo…
Apache Commons Email的Maven依赖 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.4</…
环境 Apache Maven : 3.5.4 org.springframework.boot » spring-boot-starter-parent : 2.0.3.RELEASE io.springfox » springfox-swagger2 & io.springfox » springfox-swagger-ui : 2.9.2 org.codehaus.mojo » findbugs-maven-plugin : 3.0.5 运行项目错误 错误信息如下: org.springf…
知识点 org.springframework.beans.BeanUtils与org.apache.commons.beanutils.BeanUtils都提供了copyProperties方法,作用是将一个Bean对象中的数据封装到另一个属性结构相似的Bean对象中 1)两者的copyProperties方法参数位置不同 org.springframework.beans.BeanUtils: copyProperties(sourceDemo, targetDemo) org.apache…
org.apache.commons.NET.ftp Class FTPClient类FTPClient java.lang.Object Java.lang.Object继承 org.apache.commons.net.SocketClient org.apache.commons.net.SocketClient org.apache.commons.net.ftp.FTP org.apache.commons.Net.ftp.FTP org.apache.commons.net.ftp.…
学着使用idea,想创建个maven项目,但是出师不利,立马报错,贼尴尬,错误信息如下: D:\Develop\JDK\bin\java.exe -Dmaven.multiModuleProjectDirectory=C:\Users\Administrator\AppData\Local\Temp\archetypetmp -Dmaven.home=D:\Develop\apache-maven-3.5.2 -Dclassworlds.conf=D:\Develop\apache-maven-…
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You u…
javaweb报错如下:22:49:22.155 [http-nio-8081-exec-9] ERROR org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler - Exception occurred during processing request: Method "obtainDnslogCnnicCn" failed for object cn.cnnic.ops.tld.TldMain@2c13e95dogn…
Apache Commons是Apache旗下的一个开源项目,包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动 这里是Apache commons的官方网站 下面是工具的简单介绍: Components   Attributes Runtime API to metadata attributes such as doclet tags. BCEL Byte Code Engineering Library - analyze, create, and manipulate…
Guava作为Java编程的助手,可以提升开发效率,对Guava设计思想的学习则极大的有益于今后的编程之路.故在此对<Getting Started with Google Guava>一书进行翻译并实战,未予审校,错误之处请大家不吝赐教. 全文目录如下: 1.    入门    2 1.1. Guava简介    2 1.2. Guava使用实例    2 1.3. 本书是关于什么的?    3 1.4. Guava安装    3 1.5. 通过Maven或者Gradle管理Guava   …
HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活.HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议.…
Apache Commons Pool 故事一则 最近工作中遇到一个由于对commons-pool的使用不当而引发的问题,习得正确的使用姿势后,写下这个简单的故事,帮助理解Apache Commons Pool的工作原理. Apache Commons Pool, Java界无人不知无人不晓的对象池技术, 常用于实现各种连接池, 如数据库连接池, Redis连接池等 下面以租车公司为例子说明这张图,介绍commons pool的基本工作方式: GenericObjectPool(租车公司) 作为…
谷歌Guava缓存 Guava介绍 Guava是Google guava中的一个内存缓存模块,用于将数据缓存到JVM内存中.实际项目开发中经常将一些公共或者常用的数据缓存起来方便快速访问. Guava Cache是单个应用运行时的本地缓存.它不把数据存放到文件或外部服务器.如果不符合需求,可以选择Memcached.Redis等工具. 小案例 pom.xml添加guava依赖 <?xml version="1.0" encoding="UTF-8"?>…
Ftp问题 最近遇到了ftp读取中文乱码的问题,代码中使用的是FtpClient.google一下找到了解决方案. FTP协议里面,规定文件名编码为iso-8859-1,FTP类中默认的编码也是这个. public FTP() { this.setDefaultPort(21); this._replyLines = new ArrayList(); this._newReplyString = false; this._replyString = null; this._controlEnco…
学习架构探险,从零开始写Java Web框架时,在学习到springAOP时遇到一个异常: "C:\Program Files\Java\jdk1.7.0_40\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=D:\JetBrains\xxIntelliJ IDEA 2016.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program F…
转换InputStream到String, 比如 //引入apache的io包 import org.apache.commons.io.IOUtils; ... ...String str = IOUtils.toString(is, "UTF-8");…