Skip to content

API文档_Android_Java_LuaValue

vimfung edited this page Nov 16, 2018 · 9 revisions

API文档 > 类目录 > LuaValue

LuaValue

Summary

所有原生层与lua层的数据交互主要由该类型来封装和传递(对于导出类型也一样,只是在方法参数传入和返回时由LuaContext自动封装,不需要开发者介入)。其统一了交互中传输的数据类型,帮助开发者快速理解并对其进行使用。

cn.vimfung.luascriptcore

继承

LuaValue > LuaBaseObject

Constructor

LuaValue()

创建包含nullLuaValue对象。在给lua传递一个nil值时,可以通过该方法创建对象并传给lua层。

声明
LuaValue ();
返回值

包含nullLuaValue对象实例

示例

下例演示在注册方法中返回nil到lua层

context.registerMethod("testMethod", new LuaMethodHandler() {
    @Override
    public LuaValue onExecute(LuaValue[] arguments) {
       return new LuaValue();
    }
});

LuaValue (value)

创建包含某种类型数据(包含整型、浮点型、布尔型、字符串、二进制数组、数组、字典、LuaPointerLuaFunctionLuaTuple等)的LuaValue对象。其中lua中整型会以number表示,同时也没有对应的二进制数据类型,会转换成string类型存储。

声明
LuaValue (Integer value);
LuaValue (Long value);
LuaValue (Double value);
LuaValue (Boolean value);
LuaValue (String value);
LuaValue (byte[] value);
LuaValue (Byte[] value);
LuaValue (List<?> value);
LuaValue (Map<?, ?> value);
LuaValue (LuaPointer value);
LuaValue (LuaFunction value);
LuaValue (LuaTuple value);
LuaValue (Object value);
参数
  • value: 任意数据类型
返回值

新创建的LuaValue对象实例

Instance Methods

valueType

表示包含值的类型,为枚举类型,取值如下:

名称 说明
LuaValueType.Nil 空值,nil
LuaValueType.Number 数值类型
LuaValueType.Boolean 布尔类型
LuaValueType.String 字符串类型
LuaValueType.Array 数组类型
LuaValueType.Map 字典类型
LuaValueType.Pointer 指针类型
LuaValueType.Object 对象类型
LuaValueType.Integer 整型
LuaValueType.Data 二进制数据类型
LuaValueType.Function 方法类型
LuaValueType.Tuple 元组类型
声明
LuaValueType valueType ();
返回

值的类型


toInteger

将包含的值转换为整型值并返回,有以下几种情况:

  1. 为数值类型,直接转换
  2. 为字符串类型,当只包含数字内容,则直接转换,否则为0
  3. 为对象或指针类型,返回对象或指针的地址值。
声明
long toInteger();
返回值

转换后的整型值


toDouble

将包含的值转换为浮点数并返回,有以下几种情况:

  1. 为数值类型,直接转换
  2. 为字符串类型,当只包含数字内容,则直接转换,否则为0
  3. 为对象或指针类型,返回对象或指针的地址值。
声明
double toDouble();
返回值

转换后的浮点数


toBoolean

将包含的值转换为布尔值并返回,有以下几种情况:

  1. 为数值类型时,当数值为0则转换为false,否则为true
  2. 为字符串类型时,当字符串内容为不为零的数值字符串,"YES","true"时为true,其他的为false
  3. 非上述两种类型时,如果值不为null则为true,否则为false
声明
boolean toBoolean();
返回值

转换后的布尔值


toString

将包含的值转换为字符串并返回。有以下几种情况:

  1. 为数值类型,直接转换为对应数字的字符串
  2. 为字符串类型,直接返回
  3. 为指针类型,返回指针的地址字符串
  4. 为对象类型,返回对象描述信息
声明
String toString();
返回值

转换后的字符串


toByteArray

将包含的值转换为二进制数据并返回。有以下几种情况:

  1. 为二进制数据类型,直接返回
  2. 为字符串类型,转换为UTF8编码的二进制数据
  3. 非上述类型,返回null
声明
byte[] toByteArray();
返回值

转换后的二进制数据。


toArrayList

返回包含的数组对象。如果非数组类型LuaValue对象,则返回null

声明
ArrayList toArrayList();
返回值

数组对象


toList

返回包含的数组对象。如果非数组类型LuaValue对象,则返回null

声明
List<?> toList();
返回值

数组对象


toHashMap

返回包含的哈希表对象。如果非哈希表类型LuaValue对象,则返回null

声明
HashMap toHashMap();
返回值

HashMap对象


toMap

返回包含的Map对象。如果非Map类型LuaValue对象,则返回null

声明
Map<?, ?> toMap();
返回值

Map对象


toPointer

将包含的值转换为指针并返回。如果是指针类型LuaValue对象则直接返回,否则返回值的指针地址并封装为LuaPointer返回。

声明
LuaPointer toPointer();
返回值

转换后的指针对象。


toFunction

返回包含的lua方法,如果非lua方法类型的LuaValue对象,则返回null

声明
LuaFunction toFunction();
返回值

lua方法对象


toTuple

返回包含的元组,如果非元组类型的LuaValue对象,则返回null

声明
LuaTuple toTuple();
返回值

元组


toObject

将包含的值转换为对象并返回。这种方式可以获取LuaValue所包含的值,在不关心值类型的情况下可以使用。

声明
Object toObject();
返回

转换后的对象

Clone this wiki locally