【问题标题】:Getting the languages from Language class从 Language 类获取语言
【发布时间】:2013-01-09 17:41:25
【问题描述】:

我使用 this 非官方 Java Google Translate API 将文本从一种语言翻译成另一种语言。

我有 Language 类,其中包含所有语言名称,如下图所示:

我想得到一个包含语言名称的数组。 我该怎么做?

如果是 C#,我会这样做:

PropertyInfo[] languages;
languages = typeof(Language).GetProperties();

【问题讨论】:

  • 我会要求开发人员提供此信息,因为它会使用此信息创建一个 HashMap。

标签: java google-translate


【解决方案1】:

由于 Language 不是该库中的 enum,因此您必须使用反射来查找所有成员。

【讨论】:

  • +1 它创建了一个包含所有名称的数据结构(不使用反射),但这不可用。
  • 不!这不是代码编写服务!试一试,学习一些新的东西(反射 API),如果你遇到困难,回来问一个(新的)特定问题。或者雇佣我。 :-)
【解决方案2】:

你可以得到所有的字段

Field[] fields = Language.class.getDeclaredFields();

for(Field field: fields) 
   if (field.getType() == String.class)
        System.out.println(field.getName() + " = " + field.get(null));

【讨论】:

  • 这就是我正在搜索的内容。使用String.valueOf(fields[i]),我可以将其转换为字符串,然后用它做我想做的事情。
  • @John 添加了我将如何获取字符串名称的示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 2011-06-24
  • 1970-01-01
相关资源
最近更新 更多