En el lenguaje de Programación Java hay un caracter que nos puede jugar malas pasadas, ya que cuando se agrega al código crea un comportamiento inesperado como podemos ejemplificar con un comentario de Java aparentemente inofensivo.

Veamos el siguiente código aparentemente normal:
public static String saluda(String nombre){
//u000d nombre="tont@";
String saludo= "Hola " + nombre + "!";
return greeting;
}
Podría pensarse que el nombre pasado como parámetro se debería de imprimir pero no sucede así.
El caracter u00d es de hecho un salto de línea, por lo tanto, tenemos un comentario de Java de una única línea sin ningún contenido, lo cual es perfectamente legal.
Si corres tus programas desde leningen incluso es peor porque acepta perfectamente un programa así:
public static String saluda(final String nombre){
//nombre="tont@";
String saludo= "Hola " + nombre + "!";
return saludo;
}
A pesar de que le decimos al compilador que al parámetro que lo force a ser una constante, el caracter especial en los comentarios de Java causa la reescritura del valor.
Demostración interactiva del código Java
¿No tienes tu Editor? Sin problema.
Para mostrarlo a aquellos que no puedan o no deseen ir a su IDE favorito y compilarlo, usaremos DEW, el editor en línea interactivo de Dukescript.
Primeramente abriremos el demo hola mundo con KnockoutJS.
Modificaremos el HTML para que en vez de llamar una propiedad llamemos nuestro método.
<h1 data-bind="text: saludar()">Di Algo</h1>
A nuestro método le pondremos la anotación @ComputedProperty para indicar al compilador de Dukescript que usaremos un valor que se genera a partir del valor provisto con el mismo nombre que ya existe en el modelo de datos.
Nuestra clase quedará así:
package dew.demo.ko4j;
import net.java.html.json.*;
@Model(className="Hello", properties={
@Property(name="nombre", type=String.class)
})
class HelloViaKO {
@ComputedProperty
public static String saludar(String nombre){
//u000d nombre="tont@";
String saludo= "¡Hola " + nombre + "!";
return saludo;
}
static {
Hello model = new Hello("World");
model.applyBindings();
}
}
Espero te haya gustado este pequeño truco, ya sea que quieras ocultar parte de tu código de los novatos o jugarle alguna mala pasada a alguno de tus colegas.