当前位置: 首页 > 工具软件 > Strman-Java > 使用案例 >

strman java_strman-java 源码阅读

施驰
2023-12-01

strman-java 源码阅读

最近看到一个项目strman-java声称能满足所有的字符串操作。好奇的进去看了下,发现比较有意思。项目也较小,正好可以花点时间来看下别人是如何优雅的实现字符串操作的。

项目是用gradle构建的 intellj idea居然无压力导入也是出乎我的预料。

项目的test也写的非常完善 就先从test看起走了

测试这里就用了static的静态引用,刚开始还一时不习惯...

....

import static strman.Strman.*;

import static strman.Strman.endsWith;

import static strman.Strman.format;

public class StrmanTest {

@Test

public void append_shouldAppendStringsToEndOfValue() throws Exception {

assertThat(append("f", "o", "o", "b", "a", "r"), equalTo("foobar"));

assertThat(append("foobar"), equalTo("foobar"));

assertThat(append("", "foobar"), equalTo("foobar"));

}

}

2 主要的类Strman也非常有意思。

/**

* A String manipulation library without any dependencies

*/

public abstract class Strman {

private static final Predicate NULL_STRING_PREDICATE = str -> str == null;

private static final Supplier NULL_STRING_MSG_SUPPLIER = () -> "'value' should be not null.";

private Strman() {

}

.....

}

Strman这里定义为抽象的类 我想是为了避免有人将这个类实例化。

开始的时候就定义了两个对字符串操作的lambda表达式。

NULL_STRING_PREDICATE 是判断一个str是否是null。如果是就返回true,等同于这个函数。

pulic void isStrIsNull(String str){

return null == str;

}

本来三行的代码,这里一行的代码就实现了。

NULL_STRING_MSG_SUPPLIER 这个是返回一个空字符串。

类似于这个函数

pulic void getStrIsNullMsg(){

return "'value' should be not null.";

}

这里暂时还不知道这样写NULL_STRING_MSG_SUPPLIER的意义何在。。。

这里说下 Predicate Supplier 是java 8新增的 java.util.function的接口编程的类

Predicate——接收T对象并返回boolean

Supplier——提供T对象(例如工厂),不接收值

 类似资料: