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

//初始化一个StringBuilderd
Object a = i.javanew("java.lang.StringBuilder", {"String", "12345"});
Object b = i.java(a, "java.lang.StringBuilder.append", {"String", "6789"});
Object c = i.java(a, "java.lang.StringBuilder.toString");
syso(c);

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

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

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

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

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

//设置回调方法
Object a = i.javanew("android.widget.TextView", {"Context", activity});
Object b = i.java(a, "android.widget.TextView.setText", {"CharSequence", "我是文本控件"});
//注意回调接口类名前面需要加一个“.”,如.android.view.View.OnClickListener
Object b = i.java(a, "android.view.View.setOnClickListener", {".android.view.View$OnClickListener", null},
new com.iapp.interfaces.OnInvocationHandler();
{
    public void on(java.lang.reflect.Method m, Object[] s)
    {
    }
}
)

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

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

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

activity:默认变量 Activity组件

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