M8Test Help

invokeMethod

val reflector = _reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester") val realParams = intArrayOf(1, 2, 3, 4) val wrappedParams = arrayOf<Any?>(realParams) // 调用带有参数的静态方法 reflector.invokeMethod(null, wrappedParams) { setPublic(true) setName("setIntArray") setParameterTypes(arrayOf(_plugins.loadClass("[I"))) } // 调用无参静态方法并获取返回值 _console.log("调用静态方法并获取返回值", (reflector.invokeMethod(null, null) { setPublic(true) setName("getIntArray") } as IntArray).contentToString())
def reflector = $reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester") def realParams = $arrays.intArrayOf(1, 2, 3, 4) def wrappedParams = $arrays.newArray($plugins.loadClass("java.lang.Object"), 1) $objectWrappers.wrap(wrappedParams).set(0, realParams) // 调用带有参数的静态方法 reflector.invokeMethod(null, wrappedParams) { setPublic(true) setName("setIntArray") setParameterTypes($arrays.arrayOf($plugins.loadClass("java.lang.Class"), $plugins.loadClass("[I"))) } // 调用无参静态方法并获取返回值 $console.log("调用静态方法并获取返回值", $objectWrappers.wrap(reflector.invokeMethod(null, null) { setPublic(true) setName("getIntArray") }).contentToString())
let reflector = $reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester") let realParams = $arrays.intArrayOf(1, 2, 3, 4) let wrappedParams = $arrays.newArray($plugins.loadClass("java.lang.Object"), 1) $objectWrappers.wrap(wrappedParams).set(0, realParams) // 调用带有参数的静态方法 reflector.invokeMethod(null, wrappedParams, (methodSelector) => { methodSelector.setPublic(true) methodSelector.setName("setIntArray") methodSelector.setParameterTypes($arrays.arrayOf($plugins.loadClass("java.lang.Class"), $plugins.loadClass("[I"))) }) // 调用无参静态方法并获取返回值 $console.log("调用静态方法并获取返回值", $objectWrappers.wrap(reflector.invokeMethod(null, null, (methodSelector) => { methodSelector.setPublic(true) methodSelector.setName("getIntArray") })).contentToString())
local reflector = _reflectors:reflect("com.m8test.script.core.impl.JavaTypeTester") local realParams = _arrays:intArrayOf(1, 2, 3, 4) local wrappedParams = _arrays:newArray(_plugins:loadClass("java.lang.Object"), 1) _objectWrappers:wrap(wrappedParams):set(0, realParams) -- 调用带有参数的静态方法 reflector:invokeMethod(nil, wrappedParams, function(methodSelector) methodSelector:setPublic(true) methodSelector:setName("setIntArray") methodSelector:setParameterTypes(_arrays:arrayOf(_plugins:loadClass("java.lang.Class"), _plugins:loadClass("[I"))) end) -- 调用无参静态方法并获取返回值 _console:log("调用静态方法并获取返回值", _objectWrappers:wrap(reflector:invokeMethod(nil, nil, function(methodSelector) methodSelector:setPublic(true) methodSelector:setName("getIntArray") end)) :contentToString())
<?php $reflector = $reflectors->reflect("com.m8test.script.core.impl.JavaTypeTester"); $realParams = $arrays->intArrayOf(1, 2, 3, 4); $wrappedParams = $arrays->newArray($plugins->loadClass("java.lang.Object"), 1); $objectWrappers->wrap($wrappedParams)->set(0, $realParams); // 调用带有参数的静态方法 $reflector->invokeMethod(null, $wrappedParams, function ($methodSelector) use ($arrays, $plugins) { $methodSelector->setPublic(true); $methodSelector->setName("setIntArray"); $methodSelector->setParameterTypes($arrays->arrayOf($plugins->loadClass("java.lang.Class"), $plugins->loadClass("[I"))); }); // 调用无参静态方法并获取返回值 $console->log("调用静态方法并获取返回值", $objectWrappers->wrap($reflector->invokeMethod(null, null, function ($methodSelector) { $methodSelector->setPublic(true); $methodSelector->setName("getIntArray"); }))->contentToString());
reflector = _reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester") realParams = _arrays.intArrayOf(1, 2, 3, 4) wrappedParams = _arrays.newArray(_plugins.loadClass("java.lang.Object"), 1) _objectWrappers.wrap(wrappedParams).set(0, realParams) def fn1(methodSelector): methodSelector.setPublic(True) methodSelector.setName("setIntArray") methodSelector.setParameterTypes(_arrays.arrayOf(_plugins.loadClass("java.lang.Class"), _plugins.loadClass("[I"))) # 调用带有参数的静态方法 reflector.invokeMethod(None, wrappedParams, fn1) def fn2(methodSelector): methodSelector.setPublic(True) methodSelector.setName("getIntArray") # 调用无参静态方法并获取返回值 _console.log("调用静态方法并获取返回值", _objectWrappers.wrap(reflector.invokeMethod(None, None, fn2)).contentToString())
# encoding: utf-8 reflector = $reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester") realParams = $arrays.intArrayOf(1, 2, 3, 4) wrappedParams = $arrays.newArray($plugins.loadClass("java.lang.Object"), 1) $objectWrappers.wrap(wrappedParams).set(0, realParams) # 调用带有参数的静态方法 reflector.invokeMethod(nil, wrappedParams) { |methodSelector| methodSelector.setPublic(true) methodSelector.setName("setIntArray") methodSelector.setParameterTypes($arrays.arrayOf($plugins.loadClass("java.lang.Class"), $plugins.loadClass("[I"))) } # 调用无参静态方法并获取返回值 $console.log("调用静态方法并获取返回值", $objectWrappers.wrap(reflector.invokeMethod(nil, nil) { |methodSelector| methodSelector.setPublic(true) methodSelector.setName("getIntArray") }).contentToString())
Last modified: 29 April 2025