Java:按字符串更改代码

用户名

我有这行代码:

String msg = "What's the capital in " + nyttLista.get(slumpLand).land + "?";

我想在.land之间切换.stad我可以这样做而不必重复执行此行代码吗?

我尝试String在“ land”和“ stad”之间创建一个that开关:

String i = "land";
nyttLista.get(slumpLand).i;

我可以做类似的事情吗?

迈克尔·劳埃德·李·麦克

您有几种选择,每种都有各自的优点和缺点。

最简单且几乎可以肯定适合您的用例的是简单的“ if”语句

SomeObject obj = nyttLista.get(slumpLand);
String value;
if(<some condition>) {
   value = obj.land;
} else {
   value = obj.stad;
}
String msg = "What's the capital in " + value + "?";

如果简单明了,可读性强但有点冗长,并且如果添加许多不同的条件,它将爆炸。

您可以使用三元运算符将其缩短

SomeObject obj = nyttLista.get(slumpLand);
String msg = "What's the capital in " + (<some condition> ? obj.land : obj.stad) + "?";

但以可读性和可扩展性为代价(后者对您可能并不重要)。

您可以使用反射

String fieldToUse = <some logic to return "land" or "stad".
Field field = SomeObj.class.getField(fieldToUse);
SomeObject obj = nyttLista.get(slumpLand);
"What's the capital in " + field.get(obj).toString() + "?";

我不会在此用例中执行此操作,但是当您拥有TEH DYNAMICS时它会很有用(这种情况非常罕见,您可以忽略此选项)。

如果使用Java 8,则可以使用Functions和其他有趣的东西(或Strategy模式)。但实际上仅适用于lolz。

Function<SomeObject, String> using;
if(<some condition>) {
   using = (a) => a.land;
} else {
   using = (a) => a.stad;
}


"What's the capital in " + using.apply(nyttLista.get(slumpLand)) + "?";

当您有许多不同的选项或想要传递算法的一部分时,它很有用。

您可以使用规则引擎,但是我们在反思时变得很愚蠢。当您拥有大量规则时,这很好,但是在上述问题中毫无意义。

您可以提高逻辑因此SomeObject有一个getThingie知道何时返回land或的方法stad在内部,可以使用上述方法之一实现该方法,但调用者无需关心。我不知道决定land所需的逻辑stad,但这可能是我建议使用内部使用if语句实现的逻辑

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按索引更改字符串

来自分类Dev

字符串操作代码更改

来自分类Dev

更改代码以适合字符串-Matlab

来自分类Dev

按空格分割字符串,Java

来自分类Dev

转义 JNI 代码的 Java 字符串

来自分类Dev

需要帮助将Java代码更改为方法addText(字符串文本)

来自分类Dev

需要帮助将Java代码更改为方法addText(字符串文本)

来自分类Dev

如何在Java中按字符拆分字符串?

来自分类Dev

如何更改代码以反转某些子字符串?

来自分类Dev

Java从字符串中减去字符代码的值

来自分类Dev

如何在Java中更改字符串中间的字符?

来自分类Dev

更改字符串中的字符(路径)Java

来自分类Dev

在Java中按字符串中的2个子字符串排序

来自分类Dev

Java按日期将字符串<SqlRow>排序为字符串

来自分类Dev

在Java中按引号之间的值分割字符串

来自分类Dev

Java按元素读取字符串中的元素

来自分类Dev

Java-按数字和字母拆分字符串

来自分类Dev

Java扫描程序按句子拆分字符串

来自分类Dev

Java枚举按索引获取字符串

来自分类Dev

Java 字符串格式无法按预期工作

来自分类Dev

更改Java 1.4中的字符串列表代码

来自分类Dev

无法理解字符串置换Java代码

来自分类Dev

将字符串读取为Java代码

来自分类Dev

将字符串转换为Java代码

来自分类Dev

从JSP中的内联Java代码提取字符串

来自分类Dev

Java字符串inmutable但代码不显示,

来自分类Dev

Thymeleaf:从Java代码访问外部字符串

来自分类Dev

Java将unicode代码点转换为字符串

来自分类Dev

在Java代码中使用Regex动态替换字符串