클래스 이름과 가변 개수의 인수 (즉, 가변 길이의 Object [] args)를 사용하여 Java에서 클래스를 만들고 싶습니다. 그것을 달성 할 수있는 방법이 있습니까?Java의 Javascript .apply() 메소드는 무엇입니까?
기본적으로, 방법은 함수가
function callFunction(functionName, args) {
return window[functionName].apply(null,args);
}
감사 같을 것이다에만 전화에
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 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] (http://docs.oracle.com/javase/6/docs/technotes/guides/language/varargs.html)를 사용하는 기능 또는 2) [메소드를 호출하는 방법] reflection] (http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html#invoke (java.lang.Object, % 20java.lang.Object ...)) 그 이름과 논쟁의 배열이 주어지면? 제목과 질문 본문이 잘 맞지 않습니다. –
나는 varargs를 찾고 있지 않다. 함수에 임의의 매개 변수 목록을 적용 *하고 싶습니다. 내 질문도 편집했습니다. –
Object에 vararg를 사용하십시오. Java가 메소드에 대해 알 수없는 유형의 인수를 허용하는 유일한 방법입니다. – Stefan