有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中将多维数组作为文本传递给方法调用

我编写了两个方便的方法,用于访问参数化sql查询/执行的更复杂的方法

第一个是:

public int sqlExecute(String sql, String... parameters)

我可以这样称呼它

sqlExecute("exec blah ?, ?, ?", "param1", "param2", "param3");

第二个定义是:

public int sqlExecute(String sql, String[]... parameters)

它应该用一个数组[2][无论大小]来调用,该数组在第一列中保存类型(更准确地说,它是提供类型的字段的“table.column”……我必须以这种方式实现它),在第二列中保存要使用的参数值

像这样的电话

sqlExecute("exec blah ?, ?", {"account.name", "foo"}, {"account.region", "bar"});

结果是“令牌语法错误,删除这些令牌”(使用Eclipse Luna)。 这不是正确的语法吗

我希望实现的是,我不必定义保存数组的某个变量,而是使用数组文本调用该方法,就像使用方法#1一样。 还有别的办法吗


共 (2) 个答案

  1. # 1 楼答案

    你应该这样称呼它

    sqlExecute("exec blah ?, ?", 
        new String[] {"account.name", "foo"}, 
        new String[] {"account.region", "bar"});
    

    您可以添加一个助手方法,使其更短:

    public static String[] arr(String... args) {
        return args;
    }
    
    sqlExecute("exec blah ?, ?", 
        arr("account.name", "foo"), 
        arr("account.region", "bar"));
    
  2. # 2 楼答案

    你需要使用

    sqlExecute("exec blah ?, ?",
            new String[] {"account.name", "foo"},
            new String[] {"account.region", "bar"});