【发布时间】:2012-01-21 04:38:07
【问题描述】:
我想从类名和可变数量的参数(即具有可变长度的 Object[] 参数)在 Java 中创建一个类。有什么方法可以实现吗?
基本上,该方法在 Javascript 中看起来像这样
function createClass(classname, args) {
protoObject = Object.create(window[classname].prototype);
return window[classname].apply(protoObject,args) || protoObject;
}
// I want to be able to do this:
var resultClass = createClass("someClass", someArrayOfArgs);
只调用一个函数的更简单的函数看起来像
function callFunction(functionName, args) {
return window[functionName].apply(null,args);
}
谢谢!
为了澄清,这将是 Javascript 中的一些示例用法:
function multiplyResult(var1,var2) {
return var1*var2;
}
var result = callFunction("multiplyResult", ["5", "2"]); // == 10
function multiplyObject(var1,var2) {
var result = var1 * var2;
this.getResult = function() { return result };
}
var result = createClass("multiplyObject", ["5", "2"]).getResult(); // == 10
【问题讨论】:
-
您到底在寻找哪个? 1) 在 Java 中使用 varargs 的能力,或者 2) 给定名称和参数数组的 invoke a method via reflection 的能力?您的标题和问题正文不太一致。
-
我不是在寻找可变参数。我想 apply 一个函数的任意参数列表。也编辑了我的问题:)
-
对对象使用可变参数。这是让 Java 为方法接受任意数量的未知类型参数的唯一方法。
-
这能回答你的问题吗? Java spread operator
标签: java javascript parameters apply