【问题标题】:Use string in place of variable name使用字符串代替变量名
【发布时间】:2011-03-01 16:47:04
【问题描述】:

如果您有一个名为 xyz 的 Java 变量。 然后稍后我定义了一个字符串,该字符串具有我想要使用的命名变量的值。

String x="xyz";

如何让 Java 将字符串 x 识别为指向变量 xyz 的指针?

任意示例:

JButton a= new JButton();

稍后...

String x="a";

我现在想说的是

JButton called string x.setPreferredSize(new Dimension(40,30));

【问题讨论】:

    标签: java variables


    【解决方案1】:

    一般来说,如果你想以这种方式访问​​一个变量,你必须使用反射,它速度较慢并且有潜在的危险。

    但是,由于您有一个非常具体的场景,我会采取不同的方法。为什么不将按钮或其他元素放入地图中,键是字符串:

    Map<String, JComponent> currentComponents = new HashMap<String, JComponent>();
    
    currentComponents.put("a", new JButton());
    
    String x = "a";
    
    currentComponents.get(x).setPreferredSize(new Dimension(40,30));
    

    【讨论】:

      【解决方案2】:

      简短的回答是你不能做这样的事情。这不是 Java 语言的工作方式。长答案是,您也许可以使用Reflection API 模拟某些东西。

      【讨论】:

        【解决方案3】:

        Java 变量名为 xyz

        不,它被命名为x。其值为“xyz”。

        String x="a";

        现在您将值“a”分配给名为x 的字符串。它与您的JButton 没有任何关联,即使它的名称是a

        【讨论】:

          猜你喜欢
          • 2017-06-21
          • 2014-08-28
          • 2011-10-26
          • 2020-07-09
          • 2020-08-14
          • 2020-11-01
          • 1970-01-01
          • 2015-04-18
          • 2011-09-29
          相关资源
          最近更新 更多