Ir al contenido principal

Groovy - Referencia #6

Safe dereferencing

Esta es una de las características que veo como mis favoritas en Groovy y valga mencionar, es muy poderosa.
El Safe Dereferencing, proporciona una sintaxis muy reducida para acceder a objetos compuestos (Composite).

Para contextualizar, si en Java tenemos un Objeto, Persona y dentro de este tenemos una composición Address y dentro de esta State:

clas State {

String name = "NY"
String detail = "NewYork"
}

class Address {

State state = null
String street
....
}

class Persona {

// ...
Address address = null
}

Si deseamos obtener el atributo "name" del objeto State, deberíamos hacer algo como así, para evitarnos NullPointerException's

String stateName = null;
if (null != persona) {

if (null != persona.getAddress()) {

if (null != persona.getAddress().getState()) {

stateName = persona.getAddress().getState().getName();


En Groovy solo debemos hacer:

stateName = persona?,address?.state?.name

En caso que algunos de los objetos sea nulo, stateName, se le asignará null.


Un ejemplo:

void safeDereferencing () {

println("\nSafe Dereferencing")
(1..3).each { print "*** " }
println("")

def name = "Jon";
println name.size()

name = null
// name.size() dispararía un NullPointerException
// pero si uso dereference =>

// si es nulo name, devuelve null, si no devuelve el tamaño del String.
println name?.size()
} // safeDereferencing.

Salida
Safe Dereferencing
*** *** ***
3
null

Comentarios

Entradas más populares de este blog

Pasos para remover Postgresql 8.3 en MAC OS

Tomado de: http://forums.enterprisedb.com/posts/list/1437.page In Mac OSX: (Assuming Default Locations) Via uninstaller: 1) In the installation directory, there will be a uninstall-postgresql.app file will be there, executing (double clicking) that will uninstall the postgresql installation. Manual Uninstallation: 1) Stop the server sudo /sbin/SystemStarter stop postgresql-8.3 2) Remove menu shortcuts: sudo rm -rf /Applications/PostgreSQL 8.3 3) Remove the ini file sudo rm -rf /etc/postgres-reg.ini 4) Removing Startup Items sudo rm -rf /Library/StartupItems/postgresql-8.3 5) Remove the data and installed files sudo rm -rf /Library/PostgreSQL/8.3 6) Delete the user postgres sudo dscl . delete /users/postgres

Enrique Bunbury - 3 de Octubre 2009 - Heredia CR

Via periodico la nacion, me entero de este conciertazo: http://www.nacion.com/viva/2009/julio/29/viva2042768.html Ah esperar mas detalles y la venta de la entradas, "Para solo si me perdonas ..." EDIT ..... Via http://www.enriquebunbury.com/hellville.aspx (gracias a andres por su post) venta anticipada: Entradas a la venta a partir del 13 de agosto en: www.costaricaticket.com Por ahi estare anunciando, el 13 si las estan vendiendo!

Configura tu MMS - ICE CELULAR

Hola gente, Me encontre esta para configurar en tu aparato el servicio del ICE, para enviar mensajes con Imagen: http://www.grupoice.com/esp/serv/per/cel/catal_sm/men_multi/guia.htm En mi caso yo tengo un K550i, aunque no vi mi modelo dentro de la lista que dan en el PDF, me guié con el modelo mas similar y funko. Como dato curioso si envía un mensaje a un celular sin soporte o conflagración MMS, el ICE manda un link y credenciales para ver el mensaje en: http://mms.grupoice.com/m/C?url=mmc1 upd (edit): Para que funcione los MMS debe tener instalado Internet en su Celular; el costo por tarifa fija, es de 3500 colones por mes. update (dic 29 2010) Me encontré estos otros links con mas info: http://portal.grupoice.com/wps/wcm/connect/web+content/Esp/CatTelecom/movil/Adicionales/Kolbiemail/como/ http://www.taringa.net/posts/celulares/7987334/Kolbi-Prepago-todas-la-configuraciones.html También puedes ver mas, en el thread del facebook de Kolbi http://www.facebook.com/photo.php?fbid=1720708...