java 调用java代码方法
2022-12-22 14:25:07 最后更新
用法:
//调用java api java.lang.String.indexOf(String string) 查询字符56 在123456789 中位置
var c = i.cls("String")
var a = i.javax("123456789", c, "indexOf", ["String", "56"])
syso(a)

//初始化一个StringBuilderd
var a = i.javanew("java.lang.StringBuilder", ["String", "12345"])
var b = i.java(a, "java.lang.StringBuilder.append", ["String", "6789"])
var c = i.java(a, "java.lang.StringBuilder.toString")
syso(c)

var jar = i.loadjar("test.jar")
var c1 = i.cls(jar, "com.sdk.ceshi")
//调用静态方法 com.sdk.ceshi类 c 方法
var c = i.java(null, c1, "c", {"int", 123})
syso(c)

//调用静态变量 com.sdk.ceshi类 a 变量
var c = i.javags(null, c1, "a")
syso(c)

//初始化com.sdk.ceshi类
//返回对象变量,输入完整类名或 cls方法的返回变量
var a = i.javanew(c1)

//访问变量,com.sdk.ceshi类 b变量
var c = i.javags(a, c1, "b")
syso(c)

//设置变量,com.sdk.ceshi类 b变量
var c = i.javass(a, c1, "b", "123456")
syso(c)

//设置回调方法
var a = i.javanew("android.widget.TextView", ["Context", activity])
var b = i.java(a, "android.widget.TextView.setText", {"CharSequence", "我是文本控件"})
//注意回调接口类名前面需要加一个“.”,如.android.view.View.OnClickListener
var b = i.java(a, "android.view.View.setOnClickListener", [".android.view.View$OnClickListener", null],
function(st_mD,st_aS){

//系统赋值
syso(st_mD)
syso(st_aS)
}
)

说明:
支持 android 所有的api;以及 自加载的jar SDK 的 api

注意:完整类名或 方法名 或 变量名 区分大小写

传递参数:
要传递的参数可设置多个,格式为一个数组 {  } 括起来的,参数为格式:类名, 值,类名, 值...

activity:默认变量 Activity组件

javax 与 java 方法区别:
javax:第3位参数完整类名,第4位参数方法名。类名可传入 cls方法的赋值变量;总共6位参数
java:第3位参数 完整类名和方法名。总共5位参数。