public static class ResourceBundle.Control extends Object
ResourceBundle.Controlã¯ããã³ãã«ã»ããŒãåŠçäžã«ResourceBundle.getBundleãã¡ã¯ããªã«ãã£ãŠåŒã³åºãããäžé£ã®ã³ãŒã«ããã¯ã»ã¡ãœãããå®çŸ©ããŸãã ã€ãŸããResourceBundle.Controlã¯ããªãœãŒã¹ã»ãã³ãã«ã®ããŒãæã«ãã¡ã¯ããªã»ã¡ãœãããšé£æºããŠåäœããŸãã ã³ãŒã«ããã¯ã»ã¡ãœããã®ããã©ã«ãå®è£
ã¯ããã¡ã¯ããªã»ã¡ãœãããããã©ã«ãåäœãå®è¡ããããã«å¿
èŠãªæ
å ±ãæäŸããŸãã
ã³ãŒã«ããã¯ã»ã¡ãœããã®ä»ã«ãtoBundleNameããã³toResourceNameã¡ãœããããäž»ã«ã³ãŒã«ããã¯ã»ã¡ãœããã®å®è£
ãæ¯æŽããããã«å®çŸ©ãããŠããŸãã ãã ããtoBundleNameã¡ãœããããªãŒããŒã©ã€ãããã°ãããŒã«ã©ã€ãºæžã¿ãªãœãŒã¹ã®æ§æãããã±ãŒãžåã«é¢ããç°ãªãèŠçŽãæäŸã§ããŸãã toResourceNameã¡ãœãããfinalã«ãªã£ãŠããã®ã¯ããªãœãŒã¹åãã¯ã©ã¹åã®åºåãæåã®èª€çšãåé¿ããããã§ãã
2ã€ã®ãã¡ã¯ããªã»ã¡ãœããgetControl(List)ãšgetNoFallbackControl(List)ã¯ãããã©ã«ãã®ãã³ãã«ã»ããŒãåŠçã®äžè¬çãªããªãšãŒã·ã§ã³ãå®è£
ããResourceBundle.Controlã€ã³ã¹ã¿ã³ã¹ãæäŸããŸãã
getFormatsã¡ãœããããè¿ããã圢åŒãšgetCandidateLocalesã¡ãœããããè¿ãããåè£ãã±ãŒã«ã¯ãåãåºåºãã³ãã«ã«å¯Ÿãããã¹ãŠã®ResourceBundle.getBundleåŒåºãã§äžè²«æ§ã®ãããã®ã§ãªããã°ãããŸããã ããã§ãªããšãResourceBundle.getBundleã¡ãœãããæ³å®å€ã®ãã³ãã«ãè¿ãå¯èœæ§ããããŸãã ããšãã°ãResourceBundle.getBundleã®åååŒåºãæã«getFormatsã¡ãœãããã"java.class"ã®ã¿ãè¿ããã2åç®ã®åŒåºãæã«"java.properties"ã®ã¿ãè¿ãããå Žåããã®2åç®ã®åŒåºãã§ã¯ãåååŒåºãæã«ãã£ãã·ã¥ã«æ ŒçŽãããã¯ã©ã¹ã»ããŒã¹ã®ãã³ãã«ãè¿ãããŸãã
è€æ°ã®ã¹ã¬ãããåæã«äœ¿çšããResourceBundle.Controlã€ã³ã¹ã¿ã³ã¹ã¯ãã¹ã¬ããã»ãŒãã§ãªããã°ãããŸããã ResourceBundle.getBundleã¯ãResourceBundle.Controlã®ã¡ãœãããåŒã³åºãéã«åæåŠçãè¡ããŸããã ãããã®ã¡ãœããã®ããã©ã«ãå®è£
ã¯ã¹ã¬ããã»ãŒãã§ãã
ã¢ããªã±ãŒã·ã§ã³ã¯ãgetControlãã¡ã¯ããªã»ã¡ãœããããè¿ãããResourceBundle.Controlã€ã³ã¹ã¿ã³ã¹ãæå®ããããšãã§ããŸãããResourceBundle.Controlã®ãµãã¯ã©ã¹ããäœæãããã€ã³ã¹ã¿ã³ã¹ãæå®ããŠãã³ãã«ã»ããŒãåŠçãã«ã¹ã¿ãã€ãºããããšãã§ããŸãã ããã©ã«ãã®ãã³ãã«ã»ããŒãåŠçã倿ŽããäŸããæ¬¡ã«ç€ºããŸãã
ããã°ã©ã äŸ1
次ã®ã³ãŒãã®å ŽåãResourceBundle.getBundleã¯ããããã£ã»ããŒã¹ã®ãªãœãŒã¹ã®ã¿ãæ€çŽ¢ããŸãã
import java.util.*;
import static java.util.ResourceBundle.Control.*;
...
ResourceBundle bundle =
ResourceBundle.getBundle("MyResources", new Locale("fr", "CH"),
ResourceBundle.Control.getControl(FORMAT_PROPERTIES));
ResourceBundle.getBundleã®èª¬æã®äŸã§ãªãœãŒã¹ã»ãã³ãã«ãäžããããå Žåããã®ResourceBundle.getBundleåŒåºãã¯MyResources_fr_CH.propertiesãããŒãããŸã(芪ã¯MyResources_fr.propertiesããã®èŠªã¯MyResources.properties)ã (MyResources_fr_CH.propertiesã¯é ãããªãããMyResources_fr_CH.classã¯é ãããã)
ããã°ã©ã äŸ2
Properties.loadFromXMLã䜿ã£ãŠXMLããŒã¹ã®ãã³ãã«ãããŒãããäŸããæ¬¡ã«ç€ºããŸãã
ResourceBundle rb = ResourceBundle.getBundle("Messages",
new ResourceBundle.Control() {
public List<String> getFormats(String baseName) {
if (baseName == null)
throw new NullPointerException();
return Arrays.asList("xml");
}
public ResourceBundle newBundle(String baseName,
Locale locale,
String format,
ClassLoader loader,
boolean reload)
throws IllegalAccessException,
InstantiationException,
IOException {
if (baseName == null || locale == null
|| format == null || loader == null)
throw new NullPointerException();
ResourceBundle bundle = null;
if (format.equals("xml")) {
String bundleName = toBundleName(baseName, locale);
String resourceName = toResourceName(bundleName, format);
InputStream stream = null;
if (reload) {
URL url = loader.getResource(resourceName);
if (url != null) {
URLConnection connection = url.openConnection();
if (connection != null) {
// Disable caches to get fresh data for
// reloading.
connection.setUseCaches(false);
stream = connection.getInputStream();
}
}
} else {
stream = loader.getResourceAsStream(resourceName);
}
if (stream != null) {
BufferedInputStream bis = new BufferedInputStream(stream);
bundle = new XMLResourceBundle(bis);
bis.close();
}
}
return bundle;
}
});
...
private static class XMLResourceBundle extends ResourceBundle {
private Properties props;
XMLResourceBundle(InputStream stream) throws IOException {
props = new Properties();
props.loadFromXML(stream);
}
protected Object handleGetObject(String key) {
return props.getProperty(key);
}
public Enumeration<String> getKeys() {
...
}
}
| 修食åãšå | ãã£ãŒã«ã | 説æ |
|---|---|---|
static List<String> |
FORMAT_CLASS |
"java.class"ãå«ããã¯ã©ã¹ã®ã¿ã®åœ¢åŒã®Listã§ãã |
static List<String> |
FORMAT_DEFAULT |
ããã©ã«ã圢åŒã®
Listã§ãããæåå"java.class"ãš"java.properties"ããã®é çªã§å«ã¿ãŸãã |
static List<String> |
FORMAT_PROPERTIES |
"java.properties"ãå«ããããããã£ã®ã¿ã®åœ¢åŒã®Listã§ãã |
static long |
TTL_DONT_CACHE |
ããŒãããããªãœãŒã¹ã»ãã³ãã«ã»ã€ã³ã¹ã¿ã³ã¹ããã£ãã·ã¥ããªãããã®æå¹æé宿°ã
|
static long |
TTL_NO_EXPIRATION_CONTROL |
ãã£ãã·ã¥å
ã®ããŒãæžã¿ãªãœãŒã¹ã»ãã³ãã«ã»ã€ã³ã¹ã¿ã³ã¹ã®æå¹æéå¶åŸ¡ãç¡å¹ã«ããããã®æå¹æé宿°ã
|
| 修食å | ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|---|
protected |
Control() |
å¯äžã®ã³ã³ã¹ãã©ã¯ã¿ã§ãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
List<Locale> |
getCandidateLocales(String baseName, Locale locale) |
baseNameãšlocaleã®åè£ãã±ãŒã«ãšããŠãLocaleã®Listãè¿ããŸãã |
static ResourceBundle.Control |
getControl(List<String> formats) |
getFormatsã¡ãœãããæå®ãããformatsãè¿ããResourceBundle.Controlãè¿ããŸãã |
Locale |
getFallbackLocale(String baseName, Locale locale) |
ResourceBundle.getBundleãã¡ã¯ããªã»ã¡ãœããããªãœãŒã¹ã»ãã³ãã«ãããã«æ€çŽ¢ããéã®ãã©ãŒã«ã»ããã¯ã»ãã±ãŒã«ãšããŠäœ¿çšãããLocaleãè¿ããŸãã |
List<String> |
getFormats(String baseName) |
æå®ããã
baseNameã®ãªãœãŒã¹ã»ãã³ãã«ãããŒãããéã«äœ¿çšãã¹ã圢åŒãæ ŒçŽããããStringã®Listãè¿ããŸãã |
static ResourceBundle.Control |
getNoFallbackControl(List<String> formats) |
getFormatsã¡ãœãããæå®ãããformatsãè¿ãããã€getFallbackLocaleã¡ãœãããnullãè¿ããResourceBundle.Controlãè¿ããŸãã |
long |
getTimeToLive(String baseName, Locale locale) |
ãã®
ResourceBundle.Controlã®äžã§ããŒãããããªãœãŒã¹ã»ãã³ãã«ã®æå¹æé(TTL)å€ãè¿ããŸãã |
boolean |
needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime) |
ãã£ãã·ã¥å
ã§æå¹æéã®åãã
bundleãåããŒãããå¿
èŠããããã©ããããloadTimeã«æå®ãããããŒãæå»ããã®ä»ã®ããã€ãã®æ¡ä»¶ã«åºã¥ããŠå€å®ããŸãã |
ResourceBundle |
newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) |
æå®ããã圢åŒãšãã±ãŒã«ãæã€æå®ããããã³ãã«åã®ãªãœãŒã¹ã»ãã³ãã«ããæå®ãããã¯ã©ã¹ã»ããŒããŒãå¿
èŠã«å¿ããŠäœ¿çšããŠã€ã³ã¹ã¿ã³ã¹åããŸãã
|
String |
toBundleName(String baseName, Locale locale) |
æå®ããã
baseNameãšlocaleããã³ãã«åã«å€æããŸãã |
String |
toResourceName(String bundleName, String suffix) |
æå®ããã
bundleNameãClassLoader.getResourceã¡ãœããã§å¿
èŠãšããã圢åŒã«å€æãããããbundleNameå
ã®ãã¹ãŠã®'.'ã'/'ã«çœ®ãæããæ«å°Ÿã«1ã€ã®'.'ãšæå®ããããã¡ã€ã«suffixã远å ããŸãã |
public static final List<String> FORMAT_DEFAULT
Listã§ãããæåå"java.class"ãš"java.properties"ããã®é çªã§å«ã¿ãŸãã ãã®Listã¯ã倿Žäžå¯èœã§ãã getFormats(String)public static final List<String> FORMAT_CLASS
"java.class"ãå«ããã¯ã©ã¹ã®ã¿ã®åœ¢åŒã®Listã§ãã ãã®Listã¯ã倿Žäžå¯èœã§ãã getFormats(String)public static final List<String> FORMAT_PROPERTIES
"java.properties"ãå«ããããããã£ã®ã¿ã®åœ¢åŒã®Listã§ãã ãã®Listã¯ã倿Žäžå¯èœã§ãã getFormats(String)public static final long TTL_DONT_CACHE
getTimeToLive(String, Locale)ã宿°ãã£ãŒã«ãå€public static final long TTL_NO_EXPIRATION_CONTROL
getTimeToLive(String, Locale)ã宿°ãã£ãŒã«ãå€protected Control()
public static final ResourceBundle.Control getControl(List<String> formats)
getFormatsã¡ãœãããæå®ãããformatsãè¿ããResourceBundle.Controlãè¿ããŸãã formatsã¯ãFORMAT_PROPERTIESãFORMAT_CLASSããŸãã¯FORMAT_DEFAULTã®ãããããšçãããªãå¿
èŠããããŸãã ãã®ã¡ãœããã«ãã£ãŠè¿ãããResourceBundle.Controlã€ã³ã¹ã¿ã³ã¹ã¯åç¬ã§ãããã¹ã¬ããã»ãŒãã§ãã
FORMAT_DEFAULTãæå®ããããšã¯ãResourceBundle.Controlã¯ã©ã¹ãã€ã³ã¹ã¿ã³ã¹åããããšãšç䟡ã§ãããã ãããã®ã¡ãœãããåç¬ãªããžã§ã¯ããè¿ãç¹ã ãã¯ç°ãªããŸãã
formats - ResourceBundle.Control.getFormatsã¡ãœããã«ãã£ãŠè¿ããã圢åŒformatsããµããŒãããResourceBundle.ControlNullPointerException - formatsãnullã§ããå ŽåIllegalArgumentException - formatsãäžæãªå Žåpublic static final ResourceBundle.Control getNoFallbackControl(List<String> formats)
getFormatsã¡ãœãããæå®ãããformatsãè¿ãããã€getFallbackLocaleã¡ãœãããnullãè¿ããResourceBundle.Controlãè¿ããŸãã formatsã¯ãFORMAT_PROPERTIESãFORMAT_CLASSããŸãã¯FORMAT_DEFAULTã®ãããããšçãããªãå¿
èŠããããŸãã ãã®ã¡ãœããã«ãã£ãŠè¿ãããResourceBundle.Controlã€ã³ã¹ã¿ã³ã¹ã¯åç¬ã§ãããã¹ã¬ããã»ãŒãã§ãã formats - ResourceBundle.Control.getFormatsã¡ãœããã«ãã£ãŠè¿ããã圢åŒformatsããµããŒããããã©ãŒã«ã»ããã¯LocaleããµããŒãããªãResourceBundle.ControlNullPointerException - formatsãnullã§ããå ŽåIllegalArgumentException - formatsãäžæãªå Žåpublic List<String> getFormats(String baseName)
baseNameã®ãªãœãŒã¹ã»ãã³ãã«ãããŒãããéã«äœ¿çšãã¹ã圢åŒãæ ŒçŽããããStringã®Listãè¿ããŸãã ResourceBundle.getBundleãã¡ã¯ããªã»ã¡ãœããã¯ããã®ãªã¹ãå
ã®åœ¢åŒãæã€ãªãœãŒã¹ã»ãã³ãã«ãããªã¹ãå
ã«æå®ãããé çªã§ããŒãããããšããŸãã ãã®ã¡ãœããããè¿ããããªã¹ãã«ã¯ãå°ãªããšã1ã€ã®Stringãå«ãŸããŠããªããã°ãããŸããã å®çŸ©æžã¿ã®åœ¢åŒã¯ãã¯ã©ã¹ã»ããŒã¹ã®ãªãœãŒã¹ã»ãã³ãã«çšã®"java.class"ãšãããããã£ã»ããŒã¹ã®ãªãœãŒã¹ã»ãã³ãã«çšã®"java.properties"ã§ãã "java."ã§å§ãŸãæååã¯ãå°æ¥ã®æ¡åŒµçšãšããŠäºçŽãããŠãããããã¢ããªã±ãŒã·ã§ã³å®çŸ©åœ¢åŒã§ã¯äœ¿çšããªãã§ãã ããã
äžå€ã®(倿Žäžå¯èœãª) Listãè¿ãå¿
èŠã¯ãå¿
ããããããŸããã ãã ããListãgetFormatsã«ãã£ãŠè¿ãããããšã§ãããã倿ŽããŠã¯ãããŸããã
ããã©ã«ãå®è£
ã¯FORMAT_DEFAULTãè¿ããŸãããããã¯ãResourceBundle.getBundleãã¡ã¯ããªã»ã¡ãœããããŸãã¯ã©ã¹ã»ããŒã¹ã®ãªãœãŒã¹ã»ãã³ãã«ãæ€çŽ¢ããæ¬¡ã«ããããã£ã»ããŒã¹ã®ãã³ãã«ãæ€çŽ¢ããããã«ããããã§ãã
baseName - ãªãœãŒã¹ã»ãã³ãã«ã®åºåºåãå®å
šæå®ã¯ã©ã¹åStringã®ListãNullPointerException - baseNameãnullã§ããå ŽåFORMAT_DEFAULT, FORMAT_CLASS, FORMAT_PROPERTIESpublic List<Locale> getCandidateLocales(String baseName, Locale locale)
baseNameãšlocaleã®åè£ãã±ãŒã«ãšããŠãLocaleã®Listãè¿ããŸãã ãã®ã¡ãœããã¯ãã¿ãŒã²ããLocaleã®ãªãœãŒã¹ã»ãã³ãã«ã®æ€çŽ¢ãResourceBundle.getBundleãã¡ã¯ããªã»ã¡ãœããã詊ã¿ããã³ã«ããã®ãã¡ã¯ããªã»ã¡ãœããã«ãã£ãŠåŒã³åºãããŸãã
åè£ãã±ãŒã«ã«å¯Ÿå¿ãããªãœãŒã¹ã»ãã³ãã«ãååšããŠããããããã®ããŒãæžã¿ãªãœãŒã¹ã»ãã³ãã«èªäœã«ã¯èŠªãå®çŸ©ãããŠããªãå Žåãåè£ãã±ãŒã«ã®ã·ãŒã±ã³ã¹ã¯ãå®è¡æãªãœãŒã¹æ€çŽ¢ãã¹(芪é£éãšãåŒã°ãã)ã«ã察å¿ããŸãã åºåºãã³ãã«ã芪é£éã®çµç«¯ã«ããå¿ èŠãããå Žåããã®ãªã¹ãã®æåŸã®èŠçŽ ã¯ã«ãŒãã»ãã±ãŒã«ã§ãªããã°ãããŸããã
æå®ããããã±ãŒã«ãLocale.ROOT (ã«ãŒãã»ãã±ãŒã«)ã«çããå Žåãã«ãŒãã®Localeã ããå«ãListãè¿ãããå¿
èŠããããŸãã ãã®å ŽåãResourceBundle.getBundleãã¡ã¯ããªã»ã¡ãœããã¯ãçµæãšããŠåŸããããªãœãŒã¹ã»ãã³ãã«ãšããŠåºåºãã³ãã«ã ããããŒãããŸãã
äžå€ã®(倿Žäžå¯èœãª) Listãè¿ãå¿
èŠã¯ãå¿
ããããããŸããã ãã ããListãgetCandidateLocalesã«ãã£ãŠè¿ãããããšã§ãããã倿ŽããŠã¯ãããŸããã
ããã©ã«ãå®è£
ã¯ãåŸè¿°ã®ã«ãŒã«ã䜿çšããŠãLocaleãå«ãListãè¿ããŸãã äžèšã®èª¬æã§ãLãSãCãããã³Vã¯ããããã空ã§ãªãèšèªãã¹ã¯ãªãããåœãããã³ããªã¢ã³ãã衚ããŸãã ããšãã°ã[L, C]ã¯ãèšèªãšåœã ãã«ç©ºã§ãªãå€ãæã€Localeã衚ããŸãã L("xx")ãšãã圢åŒã¯ã(空ã§ãªã)èšèªã®å€ã"xx"ã§ããããšã衚ããŸãã ã©ã®å Žåã§ããæçµã³ã³ããŒãã³ãã®å€ãšããŠç©ºã®æååãæã€Localeã¯çç¥ãããŸãã
Localeã®ã¹ã¯ãªããã®å€ã空ã®å Žåã¯ã次ã®ããã«æçµã³ã³ããŒãã³ãã1ã€ãã€çç¥ããŠåè£Localeã远å ããŸãã
Locale.ROOT Localeã®ã¹ã¯ãªããã®å€ã空ã§ãªãå Žåã¯ãæçµã³ã³ããŒãã³ããèšèªãŸã§çç¥ããŠåè£Localeã远å ããããšãå
ã®åœãšããªã¢ã³ãã䜿çšããŠLocaleããçæããåè£ã远å ããŸãã
Locale.ROOTLocaleããããªã¢ã³ãå€ãäžç·ã§åºåãããè€æ°ã®ãµãã¿ã°ã§æ§æãããå Žåã¯ãããªã¢ã³ãã»ãµãã¿ã°ã1ã€ãã€çç¥ããããšã§åè£LocaleãçæããŠãããå
ã®ãªã¹ãå
ã§ãã«ã»ããªã¢ã³ãå€ãæã€ãã¹ãŠã® Localeãªã«ã¬ã³ã¹ã®ããšã«ããããæ¿å
¥ããŸãã ããšãã°ãããªã¢ã³ãã2ã€ã®ãµãã¿ã°V1ããã³V2ããæãå Žåã¯ã次ã®ããã«ãªããŸãã
Locale.ROOTLocaleãã±ãŒã«ã®èšèªããzhã(äžåœèª)ã§ãã¹ã¯ãªããã®å€ã空ã®å Žåã¯ãåœã«å¿ããŠãHansã(ç°¡äœå)ãŸãã¯ãHantã(ç¹äœå)ãæå®ãããŸãã åœããCNã(äžåœ)ãŸãã¯ãSGã(ã·ã³ã¬ããŒã«)ã®å Žåã¯ããHansããæå®ãããŸãã åœããHKã(éŠæž¯ç¹å¥è¡æ¿åºãäžåœ)ããMOã(ãã«ãªç¹å¥è¡æ¿åºãäžåœ)ããŸãã¯ãTWã(å°æ¹Ÿ)ã®å Žåã¯ããHantããæå®ãããŸãã ãã®ä»ã®åœã§ã¯ãåœã空ã®å Žåãã¹ã¯ãªããã¯æå®ãããŸããã ããšãã°ãLocale("zh", "CN") ã®å Žåãåè£ãªã¹ãã¯æ¬¡ã®ããã«ãªããŸãã
Locale.ROOTLocale("zh", "TW")ã®å Žåãåè£ãªã¹ãã¯æ¬¡ã®ããã«ãªããŸãã
Locale.ROOTLocale("no", "NO", "NY")ãšLocale("nn", "NO")ã¯ã©ã¡ãããã«ãŠã§ãŒèªããŒãã·ã¯ã衚ããŸãã ãã±ãŒã«ã®èšèªããnnãã®å Žåãæšæºã®åè£ãªã¹ãã¯[L("nn")]ãŸã§çæãããããšã次ã®åè£ã远å ãããŸãã
Locale.ROOTLocale("no", "NO", "NY")ã®å Žåã¯ããŸãLocale("nn", "NO")ã«å€æãããããšãäžèšã®åŠçãè¡ãããŸãã
ãŸããJavaã¯èšèªãnoãããã«ãŠã§ãŒèªããŒã¯ã¢ãŒã«ãnbãã®å矩èªãšããŠæ±ããŸãã ãã®Locale("no", "NO", "NY") (äžèšã®ããã«åŠçããã)以å€ã¯ãå
¥åLocaleã®èšèªããnoããŸãã¯ãnbãã®å Žåãèšèªã³ãŒããnoããšãnbããæã€åè£Localeã亀äºã«è¿œå ãããŸãããŸãèŠæ±ãããèšèªã次ã«ãã®å矩èªã䜿çšãããŸãã ããšãã°ãLocale("nb", "NO", "POSIX")ã§ã¯ã次ã®åè£ãªã¹ããçæãããŸãã
Locale.ROOTLocale("no", "NO", "POSIX")ã§ãåããªã¹ããçæãããŸããããnoããæã€ãã±ãŒã«ããnbããæã€ãã±ãŒã«ããåã«åºçŸããç¹ãç°ãªããŸããããã©ã«ãå®è£
ã¯ArrayListã䜿çšããŸãããããã¯ããªãŒããŒã©ã€ãããå®è£
å
ã§ãåŒåºãå
ã«è¿ãåã«å€æŽããããšãã§ããŸãã ãã ããgetCandidateLocalesããè¿ãããããšã§ãµãã¯ã©ã¹å
ã§å€æŽããŠã¯ãããŸããã
ããšãã°ãæå®ãããbaseNameããMessagesãã§ãããæå®ãããlocaleãLocale("ja", "", "XX")ã§ãã£ãå ŽåãLocaleã®List:
Locale("ja", "", "XX")
Locale("ja")
Locale.ROOT
ãè¿ãããŸãã ãããŠããjaããšããã®Localeã«å¯ŸãããªãœãŒã¹ã»ãã³ãã«ãèŠã€ãã£ãå Žåãå®è¡æãªãœãŒã¹æ€çŽ¢ãã¹(芪é£é)ã¯æ¬¡ã®ããã«ãªããŸãã
Messages_ja -> Messages
baseName - ãªãœãŒã¹ã»ãã³ãã«ã®åºåºåãå®å
šæå®ã¯ã©ã¹ålocale - ãªãœãŒã¹ã»ãã³ãã«ãå¿
èŠãªãã±ãŒã«localeã«å¯Ÿããåè£Localeã®ListNullPointerException - baseNameãŸãã¯localeãnullã§ããå Žåpublic Locale getFallbackLocale(String baseName, Locale locale)
ResourceBundle.getBundleãã¡ã¯ããªã»ã¡ãœããããªãœãŒã¹ã»ãã³ãã«ãããã«æ€çŽ¢ããéã®ãã©ãŒã«ã»ããã¯ã»ãã±ãŒã«ãšããŠäœ¿çšãããLocaleãè¿ããŸãã ãã®ã¡ãœããã¯ãbaseNameãšlocaleã«å¯Ÿå¿ããçµæãªãœãŒã¹ã»ãã³ãã«ã1ã€ãèŠã€ãããªãç¶æ³ãçºçãããã³ã«ããã¡ã¯ããªã»ã¡ãœããã«ãã£ãŠåŒã³åºãããŸããããã§ããã®ãã±ãŒã«ã¯ãResourceBundle.getBundleã®ãã©ã¡ãŒã¿ããã®ã¡ãœãããã以åã«è¿ããããã©ãŒã«ã»ããã¯ã»ãã±ãŒã«ã®ããããã«ãªããŸãã
ãã®ã¡ãœããã¯ããããªããã©ãŒã«ã»ããã¯æ€çŽ¢ãå¿
èŠãªãå Žåã«nullãè¿ããŸãã
ããã©ã«ãå®è£
ã¯ãæå®ãããlocaleãããã©ã«ãã®ãã±ãŒã«ã§ã¯ãªãå Žåã«ããã©ã«ãã®Localeãè¿ããŸãã ãã以å€ã®å Žåã¯nullãè¿ãããŸãã
baseName - ãªãœãŒã¹ã»ãã³ãã«ã®åºåºåãå®å
šæå®ã¯ã©ã¹åãResourceBundle.getBundleã¯ãã®åºåºåã«å¯ŸããŠãåºåºãã³ãã«ä»¥å€ã®ãªãœãŒã¹ã»ãã³ãã«ã1ã€ãèŠã€ããããªãã£ãlocale - LocaleãResourceBundle.getBundleã¯ãã®ãã±ãŒã«ã«å¯ŸããŠãåºåºãã³ãã«ä»¥å€ã®ãªãœãŒã¹ã»ãã³ãã«ã1ã€ãèŠã€ããããªãã£ãLocaleããããªããã©ãŒã«ã»ããã¯æ€çŽ¢ãå¿
èŠãªãå Žåã¯nullãNullPointerException - baseNameãŸãã¯localeãnullã§ããå Žåpublic ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) throws IllegalAccessException, InstantiationException, IOException
nullãè¿ããŸãã äºæ³å€ã®ãšã©ãŒãçºçããããã«ãªãœãŒã¹ã»ãã³ãã«ã®ã€ã³ã¹ã¿ã³ã¹åãè¡ããªãå Žåã«ã¯ãåçŽã«nullãè¿ã代ããã«ãErrorãŸãã¯Exceptionãã¹ããŒããããšã§ãšã©ãŒãå ±åããå¿
èŠããããŸãã
reloadãã©ã°ãtrueã®å Žåãããã¯ã以åã«ããŒãããããªãœãŒã¹ã»ãã³ãã«ã®æå¹æéãåããããã«ãã®ã¡ãœãããåŒã³åºãããããšã瀺ããŸãã
ããã©ã«ãå®è£
ã«ããResourceBundleã®ã€ã³ã¹ã¿ã³ã¹åæé ã¯ã次ã®ãšããã§ãã
toBundleName(baseName, locale)ãåŒã³åºãããšã§ãã³ãã«åãååŸããããformatã"java.class"ã®å Žåããã³ãã«åã«ãã£ãŠæå®ãããClassããClassLoader.loadClass(String)ãåŒã³åºãããšã§ããŒããããã æ¬¡ã«ãClass.newInstance()ãåŒã³åºãããšã§ResourceBundleãã€ã³ã¹ã¿ã³ã¹åãããã ãªãããã®ããã©ã«ãå®è£
ã§ã¯ãã¯ã©ã¹ã»ããŒã¹ã®ãªãœãŒã¹ã»ãã³ãã«ãããŒãããéã«ã¯reloadãã©ã°ãç¡èŠãããã formatã"java.properties"ã®å ŽåãtoResourceName(bundlename, "properties")ãåŒã³åºãããšã§ãªãœãŒã¹åãååŸãããã reloadãtrueã®å Žåãload.getResourceãåŒã³åºãããšã§ãURLConnectionãäœæããããã®URLãååŸãããã ãã®URLConnectionã䜿ã£ãŠãåºç€ãšãªããªãœãŒã¹ã»ããŒãåŠçå±€ã®ãã£ãã·ã¥ã®ç¡å¹åãšãInputStreamã®ååŸãè¡ãããã ãã以å€ã®å Žåã¯ãloader.getResourceAsStreamãåŒã³åºãããšã§InputStreamãååŸãããã æ¬¡ã«ããã®InputStreamã䜿ã£ãŠPropertyResourceBundleãæ§ç¯ãããã formatã"java.class"ã§ã"java.properties"ã§ããªãå Žåã¯ãIllegalArgumentExceptionãã¹ããŒããããbaseName - ãªãœãŒã¹ã»ãã³ãã«ã®åºåºãã³ãã«åãå®å
šæå®ã¯ã©ã¹ålocale - ãªãœãŒã¹ã»ãã³ãã«ã®ã€ã³ã¹ã¿ã³ã¹å察象ãšãªããã±ãŒã«format - ããŒãããããªãœãŒã¹ã»ãã³ãã«ã®åœ¢åŒloader - ãã³ãã«ãããŒãããããã«äœ¿çšããClassLoaderreload - ãã³ãã«ã®åããŒãã瀺ããã©ã°ãæå¹æéã®åãããªãœãŒã¹ã»ãã³ãã«ãåããŒãããå Žåã¯trueããã以å€ã®å Žåã¯falsenullãNullPointerException - bundleNameãlocaleãformatããŸãã¯loaderãnullã®å ŽåããŸãã¯toBundleNameããnullãè¿ãããå ŽåIllegalArgumentException - formatãäžæã§ããå ŽåããŸãã¯æå®ããããã©ã¡ãŒã¿ã«å¯ŸããŠèŠã€ãã£ããªãœãŒã¹ã«äžæ£ãªããŒã¿ãå«ãŸããŠããå ŽåãClassCastException - ããŒããããã¯ã©ã¹ãResourceBundleã«ãã£ã¹ãã§ããªãå ŽåIllegalAccessException - ã¯ã©ã¹ãŸãã¯ãã®åŒæ°ãªãã®ã³ã³ã¹ãã©ã¯ã¿ã«ã¢ã¯ã»ã¹ã§ããªãå ŽåãInstantiationException -ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹åãäœãã»ãã®çç±ã§å€±æããå ŽåãExceptionInInitializerError - ãã®ã¡ãœããã«ããåæåã«å€±æããå ŽåãSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããæ°ããã€ã³ã¹ã¿ã³ã¹ã®äœæãæåŠãããå Žåã 詳现ã¯ãClass.newInstance()ãåç
§ããŠãã ããã IOException - äœããã®å
¥åºåæäœã䜿ã£ãŠãªãœãŒã¹ãèªã¿åãéã«ãšã©ãŒãçºçããå Žåpublic long getTimeToLive(String baseName, Locale locale)
ResourceBundle.Controlã®äžã§ããŒãããããªãœãŒã¹ã»ãã³ãã«ã®æå¹æé(TTL)å€ãè¿ããŸãã æ£ã®æå¹æéå€ã¯ããã³ãã«ããã®æ§ç¯å
ãšãªããœãŒã¹ã»ããŒã¿ã«åºã¥ããŠæ€èšŒãããã«ãã£ã¹ãå
ã«ãšã©ãŸãããšã®ã§ããããªç§æ°ã衚ããŸãã å€0ã¯ããã³ãã«ããã£ãã·ã¥ããååŸããããã³ã«æ€èšŒãããå¿
èŠãããããšã瀺ããŸãã TTL_DONT_CACHEã¯ãããŒãããããªãœãŒã¹ã»ãã³ãã«ããã£ãã·ã¥ã«æ ŒçŽãããªãããšã衚ããŸãã TTL_NO_EXPIRATION_CONTROLã¯ãããŒãããããªãœãŒã¹ã»ãã³ãã«ãæå¹æéå¶åŸ¡ãªãã§ãã£ãã·ã¥ã«æ ŒçŽãããããšã衚ããŸãã
ãã®æå¹æéã®åœ±é¿ãåããã®ã¯ãResourceBundle.getBundleãã¡ã¯ããªã»ã¡ãœããã«ãããã³ãã«ã»ããŒãåŠçã ãã§ãã ã€ãŸãããã¡ã¯ããªã»ã¡ãœããã¯ããã£ãã·ã¥å
ã§æå¹æéã®åãããªãœãŒã¹ã»ãã³ãã«ãæ€åºãããšãneedsReloadã¡ãœãããåŒã³åºãããã®ãªãœãŒã¹ã»ãã³ãã«ãåããŒãããå¿
èŠããããã©ãããå€å®ããŸãã needsReloadãtrueãè¿ããå Žåããã®ãã£ãã·ã¥å
ã®ãªãœãŒã¹ã»ãã³ãã«ã»ã€ã³ã¹ã¿ã³ã¹ããã£ãã·ã¥ããåé€ãããŸãã ãã以å€ã®å Žåããã®ã€ã³ã¹ã¿ã³ã¹ã¯ãã£ãã·ã¥å
ã«ãšã©ãŸãããã®ã¡ãœããããè¿ãããæ°ããTTLå€ã§æŽæ°ãããŸãã
ãã£ãã·ã¥å ã®ãªãœãŒã¹ã»ãã³ãã«ã¯ãã¹ãŠãå®è¡ç°å¢ã®ã¡ã¢ãªãŒå¶éã«ããããã£ãã·ã¥ããã®åé€å¯Ÿè±¡ãšãªããŸãã 倧ããªæ£ã®å€ãè¿ãããŠããããã¯ãããŒãããããªãœãŒã¹ã»ãã³ãã«ããã£ãã·ã¥å ã§ããã¯ãããããšãæå³ããããã§ã¯ãããŸããã
ããã©ã«ãã®å®è£
ã§ã¯TTL_NO_EXPIRATION_CONTROLãè¿ããŸãã
baseName - æå¹æéå€ãæå®ãããŠãããªãœãŒã¹ã»ãã³ãã«ã®åºåºåãlocale - æå¹æéå€ãæå®ãããŠãããªãœãŒã¹ã»ãã³ãã«ã®ãã±ãŒã«ãTTL_NO_EXPIRATION_CONTROLããã£ãã·ã¥ãç¡å¹ã«ããå Žåã¯TTL_DONT_CACHEãNullPointerException - baseNameãŸãã¯localeãnullã§ããå Žåpublic boolean needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime)
bundleãåããŒãããå¿
èŠããããã©ããããloadTimeã«æå®ãããããŒãæå»ããã®ä»ã®ããã€ãã®æ¡ä»¶ã«åºã¥ããŠå€å®ããŸãã ãã®ã¡ãœããã¯ãåããŒããå¿
èŠãªå Žåã¯trueãè¿ãããã以å€ã®å Žåã¯falseãè¿ããŸããloadTimeã¯ãCalendarãšããã¯ããã®ããªç§ãªãã»ããã§ãã ResourceBundle.getBundleãã¡ã¯ããªã»ã¡ãœããã®åŒåºãã¯ãæåã«ãªãœãŒã¹ã»ãã³ãã«ãããŒãããåŒåºãã§äœ¿çšãããã€ã³ã¹ã¿ã³ã¹ã§ã¯ãªããçŸåšã®åŒåºãã«äœ¿çšãããResourceBundle.Controlã€ã³ã¹ã¿ã³ã¹ã§ãã®ã¡ãœãããåŒã³åºããŸãã
ããã©ã«ãå®è£
ã¯ããªãœãŒã¹ã»ãã³ãã«ã®loadTimeãšããã®ãœãŒã¹ã»ããŒã¿ãæåŸã«å€æŽãããæå»ãšãæ¯èŒããŸãã loadTime以éã«ãœãŒã¹ã»ããŒã¿ã倿Žãããããšã倿ããå Žåã«ã¯ãtrueãè¿ãããŸãã ãã以å€ã®å Žåã¯falseãè¿ãããŸãã ãã®å®è£
ã¯ãæå®ãããformatãããã©ã«ãã®åœ¢åŒ"java.class"ã"java.properties"ã®ãããã§ããªãå Žåããã®åœ¢åŒããã¡ã€ã«æ¥å°ŸèŸãšåãæååã§ãããšä»®å®ããŸãã
baseName - ãªãœãŒã¹ã»ãã³ãã«ã®åºåºãã³ãã«åãå®å
šæå®ã¯ã©ã¹ålocale - ãªãœãŒã¹ã»ãã³ãã«ã®ã€ã³ã¹ã¿ã³ã¹å察象ãšãªããã±ãŒã«format - ããŒãããããªãœãŒã¹ã»ãã³ãã«ã®åœ¢åŒloader - ãã³ãã«ãããŒãããããã«äœ¿çšããClassLoaderbundle - ãã£ãã·ã¥å
ã§æå¹æéã®åãããªãœãŒã¹ã»ãã³ãã«ã»ã€ã³ã¹ã¿ã³ã¹loadTime - bundleãããŒãããããã£ãã·ã¥å
ã«æ ŒçŽãããæå»trueããã以å€ã®å Žåã¯falseãNullPointerException - baseNameãlocaleãformatãloaderããŸãã¯bundleãnullã®å Žåpublic String toBundleName(String baseName, Locale locale)
baseNameãšlocaleããã³ãã«åã«å€æããŸãã ãã®ã¡ãœããã¯ãnewBundleããã³needsReloadã¡ãœããã®ããã©ã«ãå®è£
ããåŒã³åºãããŸãã
ãã®å®è£ ã¯æ¬¡ã®å€ãè¿ããŸãã
baseName + "_" + language + "_" + script + "_" + country + "_" + variant
ããã§ãlanguageãscriptãcountryãããã³variantã¯ãããããlocaleã®èšèªãã¹ã¯ãªãããåœãããã³ããªã¢ã³ãã®å€ã§ãã æåŸã®èŠçŽ ã®å€ã空ã®Stringã§ããå Žåããã®å€ãšçŽåã®ã_ãã¯çç¥ãããŸãã ã¹ã¯ãªããã空ã®å Žåãã¹ã¯ãªããå€ã¯çŽåã®ã_ããšäžç·ã«çç¥ãããŸãã ãã¹ãŠã®å€ãç©ºã®æååã§ããå Žåã«ã¯ãbaseNameãè¿ãããŸãã
ããšãã°ãbaseNameã"baseName"ãlocaleãLocale("ja", "", "XX")ã®å Žåã¯ã"baseName_ja_â_XX"ãè¿ãããŸãã æå®ããããã±ãŒã«ãLocale("en")ã®å Žåã¯ã"baseName_en"ãè¿ãããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããã°ãããŒã«ã©ã€ãºæžã¿ãªãœãŒã¹ã®æ§æãããã±ãŒãžåã«é¢ããç°ãªãèŠçŽãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ããŸãã
baseName - ãªãœãŒã¹ã»ãã³ãã«ã®åºåºåãå®å
šæå®ã¯ã©ã¹ålocale - ãªãœãŒã¹ã»ãã³ãã«ã®ããŒã察象ãšãªããã±ãŒã«NullPointerException - baseNameãŸãã¯localeãnullã§ããå Žåpublic final String toResourceName(String bundleName, String suffix)
bundleNameãClassLoader.getResourceã¡ãœããã§å¿
èŠãšããã圢åŒã«å€æãããããbundleNameå
ã®ãã¹ãŠã®'.'ã'/'ã«çœ®ãæããæ«å°Ÿã«1ã€ã®'.'ãšæå®ããããã¡ã€ã«suffixã远å ããŸãã ããšãã°ãbundleNameã"foo.bar.MyResources_ja_JP"ãsuffixã"properties"ã®å Žåã¯ã"foo/bar/MyResources_ja_JP.properties"ãè¿ãããŸãã bundleName - ãã³ãã«åsuffix - ãã¡ã€ã«ã»ã¿ã€ãæ¥å°ŸèŸNullPointerException - bundleNameãŸãã¯suffixãnullã§ããå Žå ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã