La clase java.lang.System define un número de well-known properties.¿Por qué Java no tiene constantes para nombres de propiedades de sistemas bien conocidos?
Por ejemplo, se puede obtener el directorio temporal de la JVM por buscar la propiedad "java.io.tmpdir":
... = System.getProperty("java.io.tmpdir");
Lo que no entiendo es por qué estas propiedades no están definidas como constantes (por ejemplo, en la clase java.lang.System). Esto sería mucho menos propenso a errores que el uso de cadenas literales. En otras palabras, me gustaría poder hacer esto:
... = System.getProperty(System.JAVA_IO_TMPDIR);
¿Alguna idea de por qué no se hizo esto? Incluso podría agregarse en una versión futura de Java sin romper la compatibilidad hacia atrás. ¿O me estoy perdiendo algo obvio?
Lo que he hecho es crear el mío. Tarda unos 30 segundos más o menos. my.package.SystemProperties y agrega las constantes allí. Y luego deje que mi IDE me ayude desde allí. – OscarRyz
> Lo que he hecho es hacer cray (sic) el mío. ¿Y no cometió errores tipográficos? :-) Esto ilustra exactamente por qué Sun debería haber hecho esto una vez en lugar de dejarlo en manos de cada desarrollador individual. La gente es humana y comete errores. –
No, 0 errores tipográficos. Copio pegarlos y solo agrego esos valores que uso (que generalmente son solo 4) :-) – OscarRyz