2012-11-25 17 views
6

Grails projesinde bir alan sınıfınız varsa, bunları yazmak veya okumak için getter ve setter kullanabilirsiniz. örnek alan sınıf Kitap içinGeter ve ayarlayıcıları grenlerde kullanma veya kullanma?

niteliği vardır:

kontrolörü olarak
String author 

Bir kitabı ettik ve bu kitabın yazarını ayarlamak istiyorum: Bu özelliğin veya gaz giderici doğrudan erişim ile çalışır ve sınıfta bulunmasalar da belirleyici yöntemler. alma ve harika & grails öznitelikleri ayarlama tercih yolu

book.author = "Mike Miller" 
book.setAuthor("Mike Miller") 

nedir?

cevap

15

Bunlar aynı. String author gibi işaretsiz bir alanınız olduğunda, Groovy derleyici alanı özel yapar ve bunun için bir alıcı ve ayarlayıcı oluşturur. Bununla birlikte, mevcut yöntemlerin üzerine yazmaz, böylece kendi kümenizi tanımlayabilir ve/veya ayarlamayı ve değeri almanın ötesinde olsun. gibi, getter çağırmak için sözdizimsel şeker olduğunu belirterek Groovy sözdizimsel şeker, setter çağırmak içindir. Bunu görmek için sınıfı düzenleyin ve bir düzenleyicide veya alıcıda ekleyin ve bir println ekleyin, ör.

void setAuthor(String a) { 
    println "Setting author to '$a', was '$author'" 
    author = a 
} 

Oluşturulan kodunu görmek için bir Decompiler kullanabilirsiniz - Ben JD-GUI tavsiye, aynı koda aşağı derlemek hem beri http://java.decompiler.free.fr/?q=jdgui

3

ikisi arasında gerçek bir fark yoktur. Alıcı ve ayarlayıcıların Demirbaş kodu dert değil grails kullanmanın faydalarından biri, bu yüzden okunabilirliği ve verimliliği artırır olarak şiddetle kod aşağıda öneririm:

book.author = "Mike Miller"