在Java中手动插入arg作为第一个元素

时间:2014-12-20 18:39:54

标签: java spring-mvc logging spring-security

我正在为Spring MVC编写日志系统。我将userId发送到过程。

public Object execProc(String storedProcedure, RowMapper rowMapper,
    Object... args)

我需要插入args的元素头,我该怎么办? 实施例

int userId = 9;
args.push(userId)

2 个答案:

答案 0 :(得分:2)

如果您只是希望添加一个新元素作为数组的头部,则一种简单的方法是创建一个新数组并使用System.arraycopy复制元素。然后可以将新的head-element添加到索引0,如下例所示。

int userId = 9;
Object[] args = new Object[]{"a", "list", "of", "args"}; // the "old" array
Object[] theNewArray = new Object[args.length + 1]; // a new array, 1 element bigger
System.arraycopy(args, 0, theNewArray, 1, args.length); // copy everything
theNewArray[0] = userId; // and insert you head element

// From now on, use "theNewArray"

答案 1 :(得分:0)

方法execProc有vararg

execProc("your stored procedure here", myRowMapper, userId, firstArg, secondArg, ...);

如果您需要在调用方法之前合并参数,请参阅https://stackoverflow.com/a/80559/834