Java IF文の条件式中のメソッドは実行されるのでしょうか
現在androidゲームプログラミングの書籍を用いて勉強中です。
外部ストレージにファイルを作成し、削除するクラスを作成していたのですが、そのファイル削除の処理が下記のような記述でした。
ここで一点お伺いさせていただきたいのですが、if文の条件式として記述されている「textFile.delete()」は実際に実行され、ファイルが削除されるのでしょうか。
if文の条件式に論理式を書いた場合はその結果が評価され後述の処理を実行するか判断される認識ですが、下記のようにメソッドを書いた場合は実際に条件式に指定したメソッドが実行され、その戻り値で評価が行われる認識で相違ないでしょうか。
無知で申し訳ございません。調べたのですが、調べ方が悪いのか求めている回答に辿り着けなかったため、どうか教えていただきたいです。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
setContentView(textView);
String state = Environment.getExternalStorageState(); //外部ストレージの状態を取得
if (!state.equals(Environment.MEDIA_MOUNTED)) { //外部ストレージがマウントされているか確認
textView.setText("No external storage mounted");
} else {
File externalDir = Environment.getExternalStorageDirectory(); //ルートディレクトリを取得
File textFile = new File(externalDir.getAbsolutePath() + File.separator + "text.text"); //Fileクラスのインスタンスを作成
try {
writeTextFile(textFile, "This is a test. Roger"); //ファイルの内容を作成
String text = readTextFile(textFile); //ファイルの内容を読み出す
textView.setText(text);
if (!textFile.delete()) { //外部ストレージからファイルを削除する
textView.setText("Couldn't remove temporary file");
}
} catch (IOException e) {
textView.setText("something went wrong! " + e.getMessage());
}
}
}