ResourceBundle: Key als Value benutzen

MAN

Erfahrenes Mitglied
Hallo,

ist es eigentlich möglich, Keys von ResourceBundles als Values zu benutzen?

Ich habe also beispielsweise folgende Struktur der Datei:

Messages_de.properties
Code:
app.name=BigMac
app.version=${app.name} v1.2.3

Jetzt will ich im Javacode folgendermaßen darauf zugreifen:

Java:
ResourceBundle rb = ResourceBundle.getBundle("resources.Messages");
String value = rb.getString("app.version"));
System.out.println(value);
Hier erwarte ich als Ergebnis:

Code:
BigMac v1.2.3

Erhalte allerdings (weil es so wohl nicht funktioniert) folgendes:

Code:
${app.name} v1.2.3

Welche Möglichkeiten gibt es? Ist nur die Syntax falsch, oder brauche ich hier einen größeren Workaround?

Viele Grüße,
MAN
 
Soweit ich weiß geht das nicht direkt, sondern es wird in der Regel die Klasse MessageFormat dafür verwendet, was dann glaube ich etwa so aussieht:
Java:
// app.name=BigMac
// app.version=${0} v1.2.3
ResourceBundle rb = ResourceBundle.getBundle("resources.Messages");
String name = rb.getString("app.name"));
String version = rb.getString("app.version"));
System.out.println(MessageFormat.format(app.version, app.name));
 
Hm.... diese Lösung habe ich auch schon gefunden, allerdings kann man dann anhand der Property-Datei nicht nachvollziehen, mit was ${0} aufgelöst wird und es muss einzeln noch programmtechnisch zusammengebaut werden.

Aber trotzdem vielen Dank für die Hilfestellung!

Kennt vielleicht noch jemand eine "direktere" Lösung dazu? Ich weiß, ich bin anspruchsvoll ;)
 
Zurück