Puede usar cualquier signo de moneda o carácter de continuación en un identificador.
Al usar $, sugiere que se genera, p. generado por la construcción, o para uso interno solamente.
Uses for special characters in Java code
Hidden code
sólo causa un problema si tiene conflictos con clases generadas por ejemplo,
class A {
class B {
}
}
class A$B {
}
informa
error: duplicate class: A.B
compilador genera las clases no empiezan con un $
que puede ser razón de que esto lo hace.
En Windows 7, los caracteres especiales que pueden aparecer en una clase son
public static void main(String... args) throws IOException {
for (char ch = 0; ch < Character.MAX_VALUE; ch++) {
if (Character.isJavaIdentifierStart(ch) && !Character.isLetter(ch))
System.out.println("interface " + ch + " { }");
}
}
interface $ { }
interface _ { }
interface ¢ { }
interface £ { }
interface ¤ { }
interface ¥ { }
interface € { }
Otros caracteres especiales permite por Java, pero no se admiten como nombres de archivo. Esto puede depender del sistema operativo y posiblemente del idioma.
No creo que pueda usar "ningún" signo de moneda. Desde el JLS: "Las" letras de Java "incluyen mayúsculas y minúsculas letras ASCII latinas AZ (\ u0041- \ u005a), y az (\ u0061- \ u007a), y, por razones históricas, el guión bajo ASCII (_, o \ u005f) y el signo de dólar ($, o \ u0024). El carácter $ debe usarse solo en código fuente generado mecánicamente o, rara vez, para acceder a nombres preexistentes en sistemas heredados ". Dudo que un signo del euro sea válido, por ejemplo. –
@JonSkeet La palabra importante es * incluir *. La mayoría de los signos de moneda también califican, incluido el signo de € (euro). – assylias
El euro está permitido, pero es uno de los pocos que sí lo son. Intenté todo en Windows 7.;) –