1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【弊社新人に向けて】isXXX系メソッドについて

Posted at

isXXX系メソッドって例えば?

FileクラスのisFileisDirectoryメソッドなどがあります。
Fileクラス公式ドキュメント

特徴は?

シンプルにbooleanを返します。
booleanとはtruefalseといった真偽値を表すデータ型です。
if文の分岐条件やwhile文の継続条件として用いることができます。

isXXX系メソッドのコード例

例としてisBlankメソッドを作成してみます。

isBlank
// 指定された値が空文字かを判定する。
// 空文字であれば true。
// そうでなければ false を返す。
public boolean isBlank(String value) {
  if (value.isEmpty()) {
    return true;
  }

  return false;
}

使い方は?

先程作成したisBlankを例にコードを示します。

まずif文です。

分岐条件として使用する
if (isBlank(value)) {
  // 文字が入力されていない場合の処理
  System.out.println("文字が入力されていません。");
} else {
  // 文字が入力されている場合の処理
  System.out.println("入力された文字は「" + value + "」です。");
}

if(isBlank(value))この様に記述することで、
「値が入力されていなければ」という意図を、読み手に対して明確に伝えることができます。

続いてwhile文です。
!isBlankとすることでtruefalseを反転させています。

継続条件として使用する
while (!isBlank(value)) {
  // 文字が入力されている場合の処理
  System.out.println("入力された文字は「" + value + "」です。");
}

while(!isBlank(value))としています。
if文同様、「値が入力されていれば」という意図が明確です。

value.isEmpty()でいいじゃん

間違いではありません。
しかし、時としてblankの定義は変更されることがあります。
先程のisBlankは、単に空文字であるかどうかのみ判定しています。

もし、引数がnullだったら?
nullに対してメソッド呼び出しを行うと例外が発生してしまいます。

// value の中身が null だと java.lang.NullPointerException が発生
value.isEmpty()

null に対応する

空文字の判定処理をメソッド化しておくことで、null対応も容易に行うことができます。
では、実際にisBlanknullに対応させてみます。

isBlank
// 指定された値が null または空文字かを判定する。
// null または空文字であれば true。
// そうでなければ false を返す。
public boolean isBlank(String value) {
  if(value == null) {
    return true;
  }

  if(value.isEmpty()) {
    return true;
  }

  return false;

  // 以下の様に書くことも出来ますが、新人向けということで。
  // return value == null || value.isEmpty();
}

isBlankに以下のロジックを追加しただけです。

追加された行
  if(value == null) {
    return true;
  }

この様に、1箇所に修正を加えるだけで、isBlankを呼び出している箇所全てに変更を適用することができます。
コードを書き終え、いざテストをしようとした段階でblankにはnullも含まれるよ、なんて言われても問題ありません。

まとめ

他の誰かが、明日の、1週間後の、1年後の自分がそのコードの面倒を見ることになるかもしれません。
こんな感じで処理をまとめてしまえば後々楽になります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?