使用java语句执行String

时间:2016-11-05 14:45:35

标签: java

我想知道如何用一些java表达式执行String变量,假设我在测试类c1-c10中创建了10个汽车对象而没有使用数组,例如。

for(int i = 1; int < 11; i++) 
{
    String getCarBrand = "car" + i + ".getBrand();"
    System.out.println("Car number " + i + "is "+ getCarBrand); 
};

我知道我可以轻松地使用数组,但我想知道是否有一种将String作为java表达式执行的方法。

感谢。

1 个答案:

答案 0 :(得分:7)

你做不到。

  1. 您无法仅通过字符串方便地评估Java代码。你可能必须将字符串编译成一个独立的类,然后加载它,但它完全不是你想要的。
  2. Java变量名仅存在于源代码中。即使在编译.class文件中,也不再有变量名。 &lt; ---这一点特别重要,因为对于大多数其他事情,仍然可以使用反射,例如类字段。见附录I.
  3. 学习使用数组迭代Java对象的集合。
  4. 附录I

    public class Foo {
        public Car car1;
        public Car car2;
        public Car car3;
        public Car car4;
        public Car car5;
    
        public String toString() {
            StringBuilder builder = new StringBuilder();
            for(int i = 1; i <= 5; i++) {
                builder.append(Foo.class.getField("car" + i).get(this).toString());
            }
            return builder.toString();
        }
    }