在程序中有很多字符串讯息会被写死在程序中,如果您想要改变某个字符串讯息,您必须修改程序代码然后重新编译,例如简单 的"Hello!World!"程序就是如此:
package onlyfun.caterpillar; public class Hello { public static void main(String[] args) { System.out.println("Hello!World!"); } }
如果日后想要改变"Hello!World!"为"Hello!Java!",您就要修改程序并重新编译。
对于日后可能变动的文字讯息,您可以考虑将讯息移至程序之外,方法是使用Java的java.util.ResourceBundle来作讯息绑定,首先 您要先准备一个.properties,例如:
onlyfun.caterpillar.welcome=Hello onlyfun.caterpillar.name=World
.properties中撰写的是key、value,之后在程序中您可以使用key来取得对应的value值,接着改写Hello类别:
package onlyfun.caterpillar; import java.util.ResourceBundle; public class ResourceBundleDemo { public static void main(String[] args) { ResourceBundle resource = ResourceBundle.getBundle("messages"); System.out.print(resource.getString( "onlyfun.caterpillar.welcome") + "!"); System.out.println(resource.getString( "onlyfun.caterpillar.name") + "!"); } }
ResourceBundle的getBundle()方法会取得一个ResourceBundle的实例,所给定的参数名称是讯息档案的主文件名,取得 ResourceBundle实例后,可以使用getString()指定key值来取得value值,执行结果如下:
Hello!World!
如果您日后想要改变显示的讯息,只要改变.properties的内容就可以了,例如可以改为:
onlyfun.caterpillar.welcome=Oh onlyfun.caterpillar.name=Java
则直接执行程序就会显示新的讯息:
Oh!Java!