程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Groovy >> Groovy Tip 3:如何在if條件語句中判斷對象為空

Groovy Tip 3:如何在if條件語句中判斷對象為空

編輯:Groovy

在Java語言編程中,對對象的非空判斷是一個永恆的話題。例如,我們經常需要對一個字 符串進行如下的判斷:

if(str!=null&&!str.equals(""))
  {
    ......
}

輸入這樣的語句的確使人生厭,而且有時候還會忘掉輸入“!str.equals ("")”語句中的“!”導致代碼出現邏輯錯誤。

而敏捷的Groovy語言開發就不需要我們擔心這樣的問題。同樣的判斷語句,我們只需要輸 入下面的代碼:

def str = null
  if(str)
  {
    println"str is not null"
  }
  else
  {
    println'str is null'
}

這個語句段的執行結果為:

str is null

可以看出,if(str)判斷語句,當str為null的時候,不執行。你可能要問,當str = ''的 時候會怎樣呢?

def str = ''
  if(str)
  {
    println"str is not null"
  }
  else
  {
    println'str is null'
}

執行結果還是:

str is null

這樣,我們可以把開頭的那段Java代碼改寫成如下的代碼了:

if(str)
  {
    ......
}

這樣就簡潔多了。不是嗎?

除了字符串對象,那其他對象的非空判斷呢?我們來看下面的例子:

def map = ['key1':'value1']
  if(map)
  {
    println'map is not null'
  }
  else
  {
    println'map is null'
  }
  map.remove('key1')
  if(map)
  {
    println'this time,map is not null'
  }
  else
  {
    println'this time,map is null'
}

執行結果為:

map is not null

this time,map is null

同樣,我們來看看List對象:

def list = []
  if(list)
  {
    println'list is not null'
  }
  else
  {
    println'list is null'
  }
  list<<'a'
  if(list)
  {
    println'here, list is not null'
  }
  else
  {
    println'here, list is null too'
}

輸出結果為:

list is null

here, list is not null

如果是Domain對象呢?

class Empl
{
  String name
}

執行下面的語句:

Empl em = new Empl()
  if(em)
  {
    println'em is not null'
  }
  else
  {
    println'em is null'
}

結果為:

em is not null

可以看出,對於Domain對象,只要該對象不是null,則if(em)條件為true。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved