setParameterTypes
val reflector1 = _reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester")
// 调用无参构造方法
_console.log(reflector1.newInstance(null) {
setPublic(true)
})
val reflector2 = _reflectors.reflect("java.lang.StringBuilder")
// 调用有参构造方法
_console.log(reflector2.newInstance(arrayOf("hello world")) {
setPublic(true)
setParameterTypes(arrayOf(_plugins.loadClass("java.lang.String")))
})
def reflector1 = $reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester")
// 调用无参构造方法
$console.log(reflector1.newInstance(null) {
setPublic(true)
})
def reflector2 = $reflectors.reflect("java.lang.StringBuilder")
// 调用有参构造方法
$console.log(reflector2.newInstance($arrays.arrayOf($plugins.loadClass("java.lang.String"), "hello world")) {
setPublic(true)
setParameterTypes($arrays.arrayOf($plugins.loadClass("java.lang.Class"), $plugins.loadClass("java.lang.String")))
})
let reflector1 = $reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester")
// 调用无参构造方法
$console.log(reflector1.newInstance(null, (constructorSelector) => {
constructorSelector.setPublic(true)
}))
let reflector2 = $reflectors.reflect("java.lang.StringBuilder")
// 调用有参构造方法
$console.log(reflector2.newInstance($arrays.arrayOf($plugins.loadClass("java.lang.String"), "hello world"), (constructorSelector) => {
constructorSelector.setPublic(true)
constructorSelector.setParameterTypes($arrays.arrayOf($plugins.loadClass("java.lang.Class"), $plugins.loadClass("java.lang.String")))
}))
local reflector1 = _reflectors:reflect("com.m8test.script.core.impl.JavaTypeTester")
-- 调用无参构造方法
_console:log(reflector1:newInstance(nil, function(constructorSelector)
constructorSelector:setPublic(true)
end))
local reflector2 = _reflectors:reflect("java.lang.StringBuilder")
-- 调用有参构造方法
_console:log(reflector2:newInstance(_arrays:arrayOf(_plugins:loadClass("java.lang.String"), "hello world"), function(constructorSelector)
constructorSelector:setPublic(true)
constructorSelector:setParameterTypes(_arrays:arrayOf(_plugins:loadClass("java.lang.Class"), _plugins:loadClass("java.lang.String")))
end))
<?php
$reflector1 = $reflectors->reflect("com.m8test.script.core.impl.JavaTypeTester");
// 调用无参构造方法
$console->log($reflector1->newInstance(null, function ($constructorSelector) {
$constructorSelector->setPublic(true);
}));
$reflector2 = $reflectors->reflect("java.lang.StringBuilder");
// 调用有参构造方法
$console->log($reflector2->newInstance($arrays->arrayOf($plugins->loadClass("java.lang.String"), "hello world"), function ($constructorSelector) use ($plugins, $arrays) {
$constructorSelector->setPublic(true);
$constructorSelector->setParameterTypes($arrays->arrayOf($plugins->loadClass("java.lang.Class"), $plugins->loadClass("java.lang.String")));
}));
reflector1 = _reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester")
def fn1(constructorSelector):
constructorSelector.setPublic(True)
# 调用无参构造方法
_console.log(reflector1.newInstance(None, fn1))
reflector2 = _reflectors.reflect("java.lang.StringBuilder")
def fn2(constructorSelector):
constructorSelector.setPublic(True)
constructorSelector.setParameterTypes(
_arrays.arrayOf(_plugins.loadClass("java.lang.Class"), _plugins.loadClass("java.lang.String")))
# 调用有参构造方法
_console.log(reflector2.newInstance(_arrays.arrayOf(_plugins.loadClass("java.lang.String"), "hello world"), fn2))
reflector1 = $reflectors.reflect("com.m8test.script.core.impl.JavaTypeTester")
# 调用无参构造方法
$console.log(reflector1.newInstance(nil) { |constructorSelector|
constructorSelector.setPublic(true)
})
reflector2 = $reflectors.reflect("java.lang.StringBuilder")
# 调用有参构造方法
$console.log(reflector2.newInstance($arrays.arrayOf($plugins.loadClass("java.lang.String"), "hello world")) { |constructorSelector|
constructorSelector.setPublic(true)
constructorSelector.setParameterTypes($arrays.arrayOf($plugins.loadClass("java.lang.Class"), $plugins.loadClass("java.lang.String")))
})
Last modified: 29 April 2025