Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用连接生成代码?_Java_Android - Fatal编程技术网

Java 使用连接生成代码?

Java 使用连接生成代码?,java,android,Java,Android,有没有一种方法可以通过在Android studio/eclipse中使用串联来创建代码构建代码 换句话说,我有两组字符串,一组用于我处理的每个国家ZA和KE。他们有两个不同的EULA 所以我想拉一下与各自国家相关的绳子 String message = mContext.getString(R.string.eula_string_za); 上面是输出代码的示例。有什么方法可以基于If语句来创建它吗 String str = "mContext.getString(R.string.eula

有没有一种方法可以通过在Android studio/eclipse中使用串联来创建代码构建代码

换句话说,我有两组字符串,一组用于我处理的每个国家ZA和KE。他们有两个不同的EULA

所以我想拉一下与各自国家相关的绳子

String message = mContext.getString(R.string.eula_string_za);
上面是输出代码的示例。有什么方法可以基于If语句来创建它吗

String str = "mContext.getString(R.string.eula_string_";
if (something = "ZA") {
    str += "za);";
} else {
    str += "ke);";
}
因此,如果选择的国家为ZA,则输出代码应为

mContext.getString(R.string.eula_string_za);
如果是这样的话,那应该是这样的

mContext.getString(R.string.eula_string_ke);

然后结果将从strings中提取正确的字符串。xml?

Java是一个已编译的代码,而不是已执行的代码,您不能像在解释语言中那样以这种方式编写代码

在android中管理不同语言的最佳方法是为每种语言使用string.xml文件。 请看本教程,它将对您有很大帮助:


如果你想走这条路,你可以尝试使用反射。如果要使用反射,请查看

您也可以使用相同的if语句来查找正确的字符串,而不是首先使用if语句生成代码字符串:

String str;
if (something.equals("ZA")) {
    str = mContext.getString(R.string.eula_string_za);
} else {
    str = mContext.getString(R.string.eula_string_ke);
}
请注意,您的条件something=ZA并不像您认为的那样:它将字符串ZA分配给某个对象,然后将自身计算为ZA,因此这甚至不会编译。正确的方法是某物==ZA,但即使是这个。你需要使用。有些人甚至认为你应该用另一种方式来使用它,例如ZA.equalssomething来避免NullPointerException

另一种可能是首先为所有EULA构建一个从county到相应字符串ID的映射,然后要求映射返回正确的映射


但最干净的解决方案可能是使用内置机制的机器人。

谢谢,它不是基于语言,而是基于各国的政策,条款和条件是不同的。我不知道它的合法性,我只是让应用程序lol