我有一个Java程序,我有不止一种语言,我使用i18n的结构如下:
package languages;
import languages.it.ItLanguage;
enum ListLanguages {
IT,
EN,
FR
}
public class Languages {
ItLanguage language;
public Languages(ListLanguages lan) {
switch (lan) {
case IT: {
this.language = new ItLanguage();
break;
}
case EN: {
// this.language = new EnLanguage();
break;
}
}
}
public String[] getStrings(String item) {
return this.language.getStringArray(item);
}
public String getString(String item) {
return this.language.getString(item);
}
}
我希望调用构造函数Languages
传递要使用的语言,并在之后调用此对象以获得字符串,如下所示:
Languages lan = new Languages(it);
lan.getString("s1");
[...]
Languages lan = new Languages(fr);
lan.getString("s2");
但是我找不到一个解决方案来避免像getString
这样的方法中的开关:
switch(languageChosen) {
case("it"): return this.itLanguage.getString(item);
case("en"): return this.enLanguage.getString(item);
}
有没有办法避免这种切换`?
另一类(更多信息)是:
package it.bper.languages.it;
import java.util.ListResourceBundle;
public class ItLanguage extends ListResourceBundle {
@Override
protected Object[][] getContents() {
return new Object[][] {
{"name", "Pippo"},
{
"ourfeatures", new String[]
{
"Б, Г, Д, ё, Ж, П, Ф, И, й, Л, Ц, Ш, Щ, Э, e Ю Я",
"Null",
"Empty"
}
}
};
}
}
由于Java支持多态性,您可以在这里使用一个接口:提供定义getString
和getStrings
方法的interface Language
,并在LanguageIt和类似类中实现它们。
一般来说,如果类提供特定于语言的行为,那么定义类如LanguageIt
最有意义。如果它们只返回不同的数据,那么也可能只有一个语言
类,并将数据放在映射中,使用enum作为键。然后,
getString()
样式的方法就可以通过该枚举键简单地查找数据。
这是
接口
变体:
enum ListLanguages {
IT,
EN,
FR
}
public class Languages {
private Language language;
public Languages(ListLanguages lan) {
switch (lan) {
case IT: {
this.language = new ItLanguage();
break;
}
case EN: {
// this.language = new EnLanguage();
break;
}
}
}
public String getString(String item) {
return this.language.getString(item);
}
public static void main(String[] args) {
Languages lan = new Languages(ListLanguages.IT);
System.out.println(lan.getString("Peter"));
}
}
interface Language {
String getString(String item);
}
class ItLanguage implements Language {
public String getString(String item) {
return "Grazie "+item+"!";
}
}
在单个 Step 中处理多个输入文件是很常见的需求。如果这些文件都有相同的格式, 则可以使用 MultiResourceItemReader 来进行处理(支持 XML/或 纯文本文件)。 假如某个目录下有如下3个文件: file-1.txt file-2.txt ignored.txt file-1.txt 和 file-2.txt 具有相同的格式, 根据业务需求需要一起处理. 可以通过 Muli
所以我正在和Yii2一起工作,对它来说是相当新的。我正在使用Kartik文件上传,并试图将代码转换为多个文件。但它只保存了第一个文件。 我已经删除了验证,因为这也是失败的,但一旦我知道所有其他的都在工作,我会重新添加。 型号: 控制器: 查看:
问题内容: 我是Hadoop的新手,正在尝试弄清楚它是如何工作的。至于练习,我应该实现类似于WordCount- Example的东西。任务是读入多个文件,执行WordCount并为每个输入文件编写一个输出文件。Hadoop使用组合器,将map- part的输出改编为reducer的输入,然后写入一个输出文件(我猜每个正在运行的实例)。我想知道是否可以为每个输入文件写入一个输出文件(因此保留inp
我想上传多输入文件。我尝试了下面的代码,但文件没有上传,我无法获得上传目录。 HTML 控制器 我也尝试用下面的代码获取上传的数据,但为什么总是出现错误?
可设定文字输入等使用的语言。 键盘/添加词语 设定输入文字时使用的语言(键盘)。亦可设定多个键盘并切换使用。 此外,可依每种语言分别添加经常使用的词语。 添加/编辑词汇 1. 选择语言并轻触[添加/编辑词汇]。 2. 轻触 (选项)>[添加词语]。 在步骤1若选择了[日本語],可添加读音与词语。输入文字时只要输入添加[よみ]的文字,即会显示添加为输入候补的词语。 在步骤1若选择了[日本語]以外的语
问题内容: 第二次输入后,我无法上传任何图像。我只能上传第一个输入。当添加另一个输入值时,将动态创建输入。下面是代码: 问题答案: 我制作并测试了一些代码示例,以便您可以了解问题所在。您有几处错误。我建议的第一件事实际上是使用jQuery。您的代码显然使用的是jQuery,但您可以使用各种可以简化的原始JS: 请注意,我在ajax URL中进行了硬编码。我用于测试的控制器名为Multi_uploa