在Java中是否有可能在已定义之后重新定义值(如在JavaScript中)?看看我的示例代码,我正在尝试重新定义String数组。
public String[] checkIfLengEnglish (){
String language = Locale.getDefault().getDisplayLanguage() ;
String LG = Locale.getDefault().getLanguage();
if(LG.contains("en")){
String language[] = {"English"}; // Redefining
}
else {
String Language[] = {"English/"+ Language,Language,"English"}; // Redefining
}
return Language[];
}
答案 0 :(得分:4)
Language
(一次在方法级别,在if-block / else-block中两次)。不要那样做。[]
来引用数组变量,请不要这样做。由于您在if-block中声明了 in 数组,因此if-block中只有存在。要解决此问题,您需要在外面声明:
String[] languages;
if( LG.contains("en")){
languages = new String[] {"English"};
}else {
languages = new String[] {"English/"+ Language,Language,"English"};
}
return languages;
由于您不再使用初始化(只有在声明变量时才会发生)但是分配,您需要使用“长格式”来指定数组值,其中包括new String[]
。
另请注意,作为一般准则,方法和变量名称应以小写字母开头,而class / interface / enum名称应以大写字母开头。这在技术上并不是必需的,但遵循此指南将使您的代码更易于理解。
答案 1 :(得分:0)
语言[]在if / else语句中定义。您应该尝试将其置于
之上String[] array = new String[];
if(true){
array = {"English"};
}
return array;
//虚拟示例
答案 2 :(得分:0)
重新编写您的代码&用于更好理解目的的变量
public String[] CheckIfLengEnglish (){
String displayLanguage = Locale.getDefault().getDisplayLanguage() ;
String LG = Locale.getDefault().getLanguage();
String arrayLanguages[];
if( LG.contains("en")){
arrayLanguages = {"English"};
}else {
arrayLanguages = {"English/"+ Language,Language,"English"};
}
return arrayLanguages ;
}
答案 3 :(得分:-1)
String [] Language = new String [];
如果 {
语言= { “英语”}
}
其他{
String Language [] = {“English /”+ Language,Language,“English”}; }
返回语言[];