Skip to content

NexLua 增强库

NexLua 在 NexLuaJava 基础上,扩展了两个核心功能库:importdump

import 模块

import 模块为 Lua 提供了类似 Java 的类导入机制,支持单个类导入和通配符包导入。若找不到类时,会 fallback 成 require 函数调用。

导入单个类

lua
require "import"
import "java.util.ArrayList"

local list = ArrayList()
list.add("Hello")
list.add("NexLua")
print(list)

导入整个包

使用 .* 结尾的字符串来导入包。这不会立即加载包下的所有类,而是注册一个搜索路径。

lua
require "import"
import "android.widget.*"
import "android.view.*"

local btn = Button(activity)
local v = View(activity)
lua
local utils = import "utils"

dump

dump 函数用于打印 lua 中的任意值。dump 能够识别已访问过的 table,并避免重复打印。

打印基本 table

lua
local data = {
    name = "NexLua",
    version = 1.0,
    features = { "Fast", "Simple" }
}

print(dump(data))

输出:

lua
{
  ["name"] = "NexLua",
  ["version"] = 1,
  ["features"] = {
    [1] = "Fast",
    [2] = "Simple"
  }
}

处理混合键值

lua
local complex = {
    [1] = "Index 1",
    ["key"] = "String Key",
    sub = { x = 10, y = 20 }
}
print(dump(complex))

输出:

lua
{
  [1] = "Index 1",
  ["key"] = "String Key",
  ["sub"] = {
    ["x"] = 10,
    ["y"] = 20
  }
}