创建大型静态资源文件是否可以接受?例如:
public class Resources {
public static String STRING1 = "xxx";
public static String STRING2 = "xxx";
...
public static String STRINGN = "xxx";
}
我想要一个大文件,其中包含应用程序将使用的所有字符串的列表。这会引起问题吗?我不完全确定静态类如何保存在内存中,所以我不知道这是否会导致内存问题。是太“丑”还是造型不好?有更好的方法吗?
最佳答案
我会将语言文件和文件系统中的此类内容保存为纯文本(或某种特殊格式)。然后您可以轻松更改文本等。然后你可以编写一个静态类(LanguageFactory)来获取你的字符串。
示例语言文件:
English language file!--OutGameMenu Strings--!
joinGame = Join Game createGame = Create Game
语言工厂:
public class LanguageFactory {
private static final String PREFIX = "/languages/";
public static final int ENGLISH = 1;
public static final int GERMAN = 2;
public static final int DEFAULT = ENGLISH;
//List of available InProperties:
public static final String JOIN_GAME = "joinGame";
public static final String CREATE_GAME = "createGame";
private static Properties language;
public static String getString(String text){
if(language == null){
setLanguage(DEFAULT);
}
return language.getProperty(text);
}
public static void setLanguage(int language){
switch (language) {
case ENGLISH:
setLanguage("en.lang");
break;
case GERMAN:
setLanguage("de.lang");
break;
}
}
private static void setLanguage(String path){
language = new Properties();
try {
InputStream fi = LanguageFactory.class.getResourceAsStream((PREFIX+path));
language.load(fi);
fi.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
关于java - 创建大型静态资源文件是否存在问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689990/