当前位置: 首页 > 知识库问答 >
问题:

(Java/柯特林)我可以“转换”一个字符串来调用一个现有的变量吗?比如“varName”。getVariable?

羊舌承颜
2023-03-14

我可以使用字符串按名称调用现有的变量或对象吗?这个问题有点抽象,但我要找的是这样的东西。

示例

var number = 5

var getnumber = "number"

if (getnumber.(???) > 10)
{...}

or 

if ("number".(???) > 10)

{...}```

共有2个答案

邹山
2023-03-14

如果有固定数量的条目,可以使用枚举:

private enum class Size(val cm: Int) {
    SMALL(50),
    MEDIUM(100),
    LARGE(150),
}

用法可能如下所示:

val sizeOne = Size.MEDIUM
val sizeTwo = Size.LARGE

if(sizeOne.cm > sizeTwo.cm ) { ... }

val sizeHundred = Size.values().find { it.cm == 100 }
朱宜
2023-03-14

这是不可能的:在类级别上,局部变量名根本不存在。

通常的解决方案是停止考虑'python'或'javascript',其中每个对象都是一种hashmap ,而考虑Java。

如果您无法从Python/JavaScript空间中解脱出来,或者问题从根本上归结为这个想法,那么,您有了自己的答案:

使映射 而不是局部变量

Map<String, Integer> map = new HashMap<>();
map.put("number", 5);
var getNumber = "number";
if (map.get(getNumber) > 10) { .... }
 类似资料:
  • 问题内容: 我正在尝试Sphere Online Judge(SPOJ)的“下一个回文”问题,在该问题中,我需要找到最多100万个整数的回文。我曾考虑过使用Java的函数来反转字符串,但是它们是否允许字符串这么长? 问题答案: 你应该能够得到一个长度为String的字符串 总是2147483647(2 31 - 1) (由Java规范定义,阵列的最大尺寸,这对于内部存储String类用途) OR

  • 我想用一个Long的字符串表示来创建一个这个值的Long 我想要一个具有此值的多头 我尝试了toLong()、as Long和许多其他方法,但都不起作用 有可能吗? 问候

  • 我有以下示例代码片段(我正在使用React,但不想在这里发布之前花时间清理实际的项目代码): null null 当前,当我点击按钮打开导航菜单时,页面将禁用滚动,菜单将淡入。当我再次单击该按钮时,滚动将重新启用,菜单将淡出。 我实际上想要的是一个擦拭过渡而不是褪色,像这样: 使用上图作为类比,主页面内容将是A,而菜单将是B。但是,我想要的擦拭不是水平的,而是垂直的,即当我打开菜单时,擦拭将从上到

  • 问题内容: 假设我有两个变量,后来我想将它们连接成一个字符串。这就是我要做的: 我见过有人说“把戏”是“丑陋的”等,因此您应该使用或代替。我更喜欢这种构造,因为: 如果可能,我更喜欢使用语言功能而不是API调用 通常,该语言通常不是比API更稳定的语言吗? 如果语言功能仅隐藏API调用,则更强烈的理由更喜欢它! 更抽象!隐藏是好的! 我喜欢,并且在视觉上处于同一水平 暗示一些特别之处 更短 是否真

  • 如何检查一个字符串是否在另一个字符串中,但匹配项需要在前面,而不是中间或最后。例如,a="

  • 问题内容: if var is ‘stringone’ or ‘stringtwo’: dosomething() 这行不通!我有一个变量,当它是两个值中的一个时,我需要它执行某些操作,但它不会输入if语句。在Java中工作。如何用Python编写? 问题答案: 这不能满足您的期望: 它与: 始终为真,因为它被认为是“真”值。 有两种选择: 或者您可以编写单独的相等性测试, 不要使用,因为比较对象