访问 JVM
kotlin
groovy
javascript
lua
php
python
ruby
_console.log(StringBuilder::class.java)
tip
$console.log(StringBuilder)
tip
let StringBuilder = $java.loadClass("java.lang.StringBuilder")
$console.log(StringBuilder)
tip
local StringBuilder = _java:loadClass("java.lang.StringBuilder")
_console:log(StringBuilder)
tip
<?php
// java_class 通过类名加载类
$class = java_class("java.lang.System");
$console->log($class);
tip
StringBuilder = _java.loadClass("java.lang.StringBuilder")
_console.log(StringBuilder)
tip
StringBuilder = java.lang.StringBuilder
$console.log(StringBuilder)
tip
kotlin
groovy
javascript
lua
php
python
ruby
_console.log(StringBuilder("Hello World"))
tip
$console.log(new StringBuilder("Hello World"))
tip
let StringBuilder = $java.loadClass("java.lang.StringBuilder")
$console.log(new StringBuilder("Hello World"))
tip
local StringBuilder = _java:loadClass("java.lang.StringBuilder")
_console:log(StringBuilder("Hello World"))
tip
<?php
// 通过 java(类名,构造方法参数) 创建对象
$a = java("java.util.Date", 123);
$console->log($a->time);
tip
StringBuilder = _java.loadClass("java.lang.StringBuilder")
_console.log(StringBuilder("Hello World"))
tip
StringBuilder = java.lang.StringBuilder
$console.log(StringBuilder.new("Hello World"))
tip
kotlin
groovy
javascript
lua
php
python
ruby
val sb = StringBuilder("Hello World")
sb.append(",kotlin!")
_console.log(sb.toString())
tip
def sb = new StringBuilder("Hello World")
sb.append(",groovy!")
$console.log(sb.toString())
tip
let StringBuilder = $java.loadClass("java.lang.StringBuilder")
let sb = new StringBuilder("Hello World")
sb.append(",js!")
$console.log(sb.toString())
tip
local StringBuilder = _java:loadClass("java.lang.StringBuilder")
local sb = StringBuilder("Hello World")
sb:append(",lua!")
_console:log(sb:toString())
tip
<?php
$sb = java("java.lang.StringBuilder", "Hello World");
$sb->append(",php!");
$console->log($sb->toString());
tip
StringBuilder = _java.loadClass("java.lang.StringBuilder")
sb = StringBuilder("Hello World")
sb.append(",python!")
_console.log(sb.toString())
tip
StringBuilder = java.lang.StringBuilder
sb = StringBuilder.new("Hello World")
sb.append(",ruby!")
$console.log(sb.toString())
tip
kotlin
groovy
javascript
lua
php
python
ruby
import com.m8test.script.core.impl.JavaTypeTester
_console.log(JavaTypeTester().OBJECT_FIELD)
tip
import com.m8test.script.core.impl.JavaTypeTester
$console.log(new JavaTypeTester().OBJECT_FIELD)
tip
let JavaTypeTester = $java.loadClass("com.m8test.script.core.impl.JavaTypeTester")
$console.log(new JavaTypeTester().OBJECT_FIELD)
tip
local JavaTypeTester = _java:loadClass("com.m8test.script.core.impl.JavaTypeTester")
_console:log(JavaTypeTester().OBJECT_FIELD)
tip
<?php
$a = java("com.m8test.script.core.impl.JavaTypeTester");
$console->log($a->OBJECT_FIELD);
tip
JavaTypeTester = _java.loadClass("com.m8test.script.core.impl.JavaTypeTester")
_console.log(JavaTypeTester().OBJECT_FIELD)
tip
java_import "com.m8test.script.core.impl.JavaTypeTester"
jtt = JavaTypeTester.new
$console.log(jtt.OBJECT_FIELD)
tip
kotlin
groovy
javascript
lua
php
python
ruby
_console.log(System.currentTimeMillis())
tip
$console.log(System.currentTimeMillis())
tip
let System = $java.loadClass("java.lang.System")
$console.log(System.currentTimeMillis())
tip
local System = _java:loadClass("java.lang.System")
_console:log(System:currentTimeMillis())
tip
<?php
// 方法二: java_class() 方法导入类后通过 -> 调用
$class = java_class("java.lang.System");
//# System.currentTimeMillis();
$console->log($class->currentTimeMillis());
$console->log($class::currentTimeMillis());
tip
System = _java.loadClass("java.lang.System")
_console.log(System.currentTimeMillis())
tip
System = java.lang.System
$console.log(System.currentTimeMillis())
tip
kotlin
groovy
javascript
lua
php
python
ruby
import com.m8test.script.core.impl.JavaTypeTester
_console.log(JavaTypeTester.STATIC_FIELD)
tip
import com.m8test.script.core.impl.JavaTypeTester
$console.log(JavaTypeTester.STATIC_FIELD)
tip
let JavaTypeTester = $java.loadClass("com.m8test.script.core.impl.JavaTypeTester")
$console.log(JavaTypeTester.STATIC_FIELD)
tip
local JavaTypeTester = _java:loadClass("com.m8test.script.core.impl.JavaTypeTester")
_console:log(JavaTypeTester.STATIC_FIELD)
tip
<?php
$class = java_class("java.lang.System");
# System.in 静态常量
$in = $class::in;
$console->log(gettype($in));
$JavaTypeTester = java_class("com.m8test.script.core.impl.JavaTypeTester");
// 静态变量, 反射调用
$v = $reflectors->reflect($JavaTypeTester)->getField(null, function ($f) {
$f->setName("STATIC_FIELD");
});
$console->log(gettype($v));
tip
JavaTypeTester = _java.loadClass("com.m8test.script.core.impl.JavaTypeTester")
_console.log(JavaTypeTester.STATIC_FIELD)
tip
java_import "com.m8test.script.core.impl.JavaTypeTester"
$console.log(JavaTypeTester.STATIC_FIELD)
java_import "android.os.Build"
$console.log(Build::BRAND)
tip
kotlin
groovy
javascript
lua
php
python
ruby
import com.m8test.script.core.api.console.Console
import com.m8test.script.core.impl.JavaTypeTester
class MultiAbstractMethodInterfaceImpl(private val _console: Console) :
JavaTypeTester.MultiAbstractMethodInterface {
override fun setInt(i: Int) {
_console.log("setInt $i")
}
override fun getInt(): Int {
_console.log("getInt")
return 0
}
}
JavaTypeTester.setMultiAbstractMethodInterface(MultiAbstractMethodInterfaceImpl(_console))
val mami = JavaTypeTester.getMultiAbstractMethodInterface()
mami.setInt(1234)
_console.log(mami.getInt())
tip
import com.m8test.script.core.impl.JavaTypeTester
class MultiAbstractMethodInterfaceImpl implements JavaTypeTester.MultiAbstractMethodInterface {
def $console
@Override
void setInt(int i) {
$console.log("setInt" + i)
}
@Override
int getInt() {
$console.log("getInt")
return 0
}
}
JavaTypeTester.setMultiAbstractMethodInterface(new MultiAbstractMethodInterfaceImpl($console: $console))
def mami = JavaTypeTester.getMultiAbstractMethodInterface()
mami.setInt(1234)
$console.log(mami.getInt())
tip
let JavaTypeTester = $java.loadClass("com.m8test.script.core.impl.JavaTypeTester")
JavaTypeTester.setMultiAbstractMethodInterface({
setInt: (i) => {
$console.log("setInt" + i)
},
getInt: () => {
$console.log("getInt")
return 0
}
})
let mami = JavaTypeTester.getMultiAbstractMethodInterface()
mami.setInt(1234)
$console.log(mami.getInt())
tip
local JavaTypeTester = _java:loadClass("com.m8test.script.core.impl.JavaTypeTester")
JavaTypeTester:setMultiAbstractMethodInterface({
setInt = function(i)
_console:log("setInt" .. i)
end,
getInt = function()
_console:log("getInt")
return 0
end
})
local mami = JavaTypeTester:getMultiAbstractMethodInterface()
mami:setInt(1234)
_console:log(mami:getInt())
tip
<?php
$JavaTypeTester = java_class("com.m8test.script.core.impl.JavaTypeTester");
class MultiAbstractMethodInterfaceImpl
{
var $console;
var $i;
function __construct($p)
{
$this->console = $p;
}
function setInt($i)
{
$this->i = $i;
$this->console->log("setInt", $i);
}
function getInt()
{
return $this->i;
}
}
$JavaTypeTester->setMultiAbstractMethodInterface(new MultiAbstractMethodInterfaceImpl($console));
$mami = $JavaTypeTester->getMultiAbstractMethodInterface();
$mami->setInt(12345);
$console->log($mami->getInt());
tip
JavaTypeTester = _java.loadClass("com.m8test.script.core.impl.JavaTypeTester")
class MultiAbstractMethodInterfaceImpl():
def setInt(self, i):
_console.log("setInt " + str(i))
def getInt(self):
_console.log("getInt")
return 0
JavaTypeTester.setMultiAbstractMethodInterface(_java.proxy(MultiAbstractMethodInterfaceImpl(), [
"com.m8test.script.core.impl.JavaTypeTester$MultiAbstractMethodInterface"]))
mami = JavaTypeTester.getMultiAbstractMethodInterface()
mami.setInt(1234)
_console.log(mami.getInt())
tip
import 'com.m8test.script.core.impl.JavaTypeTester'
import 'com.m8test.script.core.impl.JavaTypeTester$MultiAbstractMethodInterface'
class MultiAbstractMethodInterfaceImpl
include MultiAbstractMethodInterface
def setInt(i)
$console.log("setInt #{i}")
end
def getInt()
$console.log("getInt")
0
end
end
JavaTypeTester.setMultiAbstractMethodInterface(MultiAbstractMethodInterfaceImpl.new)
mami = JavaTypeTester.getMultiAbstractMethodInterface()
mami.setInt(1234)
$console.log(mami.getInt())
tip
kotlin
groovy
javascript
lua
php
python
ruby
import com.m8test.script.core.api.console.Console
import com.m8test.script.core.impl.JavaTypeTester
class SingleAbstractMethodInterfaceImpl(private val _console: Console) :
JavaTypeTester.SingleAbstractMethodInterface {
override fun getInt(): Int {
_console.log("getInt")
return 0
}
}
JavaTypeTester.setSingleAbstractMethodInterface(SingleAbstractMethodInterfaceImpl(_console))
val sami = JavaTypeTester.getSingleAbstractMethodInterface()
_console.log(sami.getInt())
tip
import com.m8test.script.core.impl.JavaTypeTester
class SingleAbstractMethodInterfaceImpl implements JavaTypeTester.SingleAbstractMethodInterface {
def $console
@Override
int getInt() {
$console.log("getInt")
return 0
}
}
JavaTypeTester.setSingleAbstractMethodInterface(new SingleAbstractMethodInterfaceImpl($console: $console))
def sami = JavaTypeTester.getSingleAbstractMethodInterface()
$console.log(sami.getInt())
tip
let JavaTypeTester = $java.loadClass("com.m8test.script.core.impl.JavaTypeTester")
JavaTypeTester.setSingleAbstractMethodInterface(() => {
$console.log("getInt")
return 0
})
let sami = JavaTypeTester.getSingleAbstractMethodInterface()
$console.log(sami.getInt())
tip
local JavaTypeTester = _java:loadClass("com.m8test.script.core.impl.JavaTypeTester")
JavaTypeTester:setSingleAbstractMethodInterface(function()
_console:log("getInt")
return 0
end)
local sami = JavaTypeTester:getSingleAbstractMethodInterface()
_console:log(sami:getInt())
tip
<?php
$JavaTypeTester = java_class("com.m8test.script.core.impl.JavaTypeTester");
// 方法一: 通过闭包(推荐)
$JavaTypeTester->setSingleAbstractMethodInterface(function () use ($console) {
$console->log("closure");
return 1234;
});
$sami = $JavaTypeTester->getSingleAbstractMethodInterface();
$console->log($sami->getInt());
// 方法二: 通过对象
class SingleAbstractMethodInterfaceImpl
{
var $console;
function __construct($p)
{
$this->console = $p;
}
function getInt()
{
$this->console->log("getInt");
return 0;
}
}
$JavaTypeTester->setSingleAbstractMethodInterface(new SingleAbstractMethodInterfaceImpl($console));
$sami = $JavaTypeTester->getSingleAbstractMethodInterface();
$console->log($sami->getInt());
tip
JavaTypeTester = _java.loadClass("com.m8test.script.core.impl.JavaTypeTester")
def sami():
_console.log("getInt")
return 0
JavaTypeTester.setSingleAbstractMethodInterface(sami)
s = JavaTypeTester.getSingleAbstractMethodInterface()
_console.log(s == sami)
_console.log(s())
tip
import 'com.m8test.script.core.impl.JavaTypeTester'
JavaTypeTester.setMultiAbstractMethodInterface {
$console.log("getInt")
0
}
sami = JavaTypeTester.getMultiAbstractMethodInterface()
$console.log(sami.getInt())
tip