グアバエレガントでヌル空の文字列オブジェクトかどうかを決定します
I.はじめに
パラメータのコードがnullまたは空が非常に肥大化になりますそれぞれの場所で決定する必要が反復コードの多くの上に書かれていることを、コードのほとんどが書かれているの判断を決定するために不可欠です、もたらされたグアバが私たちのために書かれたコードの最適化のこの部分は、使用することができます。
加えて、我々は、同じ機能を達成するための方法を記述し、参照グアバソースコードによってアイデアを実現します。
-------------------------------------------------- -------------------------------------------------- -
注:IDEAでグアバグアバの依存関係を使用してインポートする必要がある、あなたは依存やMavenのGradleによって導入することができます。
Gradleのbuild.gradleインポートファイルの依存関係:コンパイルグループ: 'com.google.guava'、名前: 'グアバ'、バージョン:'28 .0-JRE "
二、グアバエレガントなオブジェクトがnullであるかどうかを判断します
- オブジェクトの例は、ヌル決定されます
import java.util.Objects;
public class NotNull {
public static void main(String[] args) {
//定义一个 字符串为null的参数
String strNull = null;
//调用方法传入 null参数
addNull(strNull);
}
private static void addNull(String str) {
//Guava提供判断为null的方法,对参数进行判断。
Objects.requireNonNull(str);
System.out.println(str);
}
}
- 業績
Exception in thread "main" java.lang.NullPointerException
at java.util.Objects.requireNonNull(Objects.java:203)
at day09.test.NotNull.addNull(NotNull.java:27)
at day09.test.NotNull.main(NotNull.java:21)
- ビューObjects.requireNonNullソース
public static <T> T requireNonNull(T obj) {
//判断参数为null 则抛出异常信息
if (obj == null)
throw new NullPointerException();
//参数不为null,则返回参数本身
return obj;
}
第三に、Objects.requireNonNullを実現される機能をパッケージングする方法
Objects.requireNonNullソースが唯一のヌルを分析見ることができ、空の文字列が決定されていません。私たちは、自分自身のソースコードの実装の線に沿って判断ヌルや空の文字列を達成する方法を書きました。
- ツールクラス、空の文字列とnullのクラスを決定する書き込み実装方法を作成します。
import com.google.common.base.Strings;
public class StringUtils {
public static String requiredNonNullOrEmpty(String str) {
if (Strings.isNullOrEmpty(str)) {
throw new IllegalStateException("should non null or empty");
}
return str;
}
}
- テストツール
import java.util.Objects;
public class NotNull {
public static void main(String[] args) {
//定义一个 字符串为空和null的参数
String strNull = null;
String strEmpty = "";
//调用方法分别传入 null和空字符串的参数
// addNull(strNull);
addEmpty(strEmpty);
}
private static void addNull(String str) {
//使用我们写的工具类对参数进行判断
String nullOrEmpty = StringUtils.requiredNonNullOrEmpty(str);
System.out.println(nullOrEmpty);
}
private static void addEmpty(String str) {
//使用我们写的工具类对参数进行判断
String nullOrEmpty = StringUtils.requiredNonNullOrEmpty(str);
System.out.println(nullOrEmpty);
}
}
- テスト結果
- 入ってくるパラメータがnullまたは空の文字列がある場合は、例外は、パラメータの決意の説明が役割を果たしてスローされます。
Exception in thread "main" java.lang.IllegalStateException: should non null or empty
at day09.test.StringUtils.requiredNonNullOrEmpty(StringUtils.java:11)
at day09.test.NotNull.addEmpty(NotNull.java:30)
at day09.test.NotNull.main(NotNull.java:20)