當前位置: 首頁>>代碼示例>>Java>>正文


Java LuaValue.TUSERDATA屬性代碼示例

本文整理匯總了Java中org.luaj.vm2.LuaValue.TUSERDATA屬性的典型用法代碼示例。如果您正苦於以下問題:Java LuaValue.TUSERDATA屬性的具體用法?Java LuaValue.TUSERDATA怎麽用?Java LuaValue.TUSERDATA使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在org.luaj.vm2.LuaValue的用法示例。


在下文中一共展示了LuaValue.TUSERDATA屬性的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: coerce

public Object coerce(LuaValue value) {
	switch ( value.type() ) {
	case LuaValue.TTABLE: {
		int n = value.length();
		Object a = Array.newInstance(componentType, n);
		for ( int i=0; i<n; i++ )
			Array.set(a, i, componentCoercion.coerce(value.get(i+1)));
		return a;
	}
	case LuaValue.TUSERDATA:
		return value.touserdata();
	case LuaValue.TNIL:
		return null;
	default: 
		return null;
	}
	
}
 
開發者ID:alibaba,項目名稱:LuaViewPlayground,代碼行數:18,代碼來源:CoerceLuaToJava.java

示例2: score

public int score(LuaValue value) {
	switch ( value.type() ) {
	case LuaValue.TNUMBER:
		return inheritanceLevels( targetType, value.isint()? Integer.class: Double.class );
	case LuaValue.TBOOLEAN:
		return inheritanceLevels( targetType, Boolean.class );
	case LuaValue.TSTRING:
		return inheritanceLevels( targetType, String.class );
	case LuaValue.TUSERDATA:
		return inheritanceLevels( targetType, value.touserdata().getClass() );
	case LuaValue.TNIL:
		return SCORE_NULL_VALUE;
	default:
		return inheritanceLevels( targetType, value.getClass() );
	}
}
 
開發者ID:alibaba,項目名稱:LuaViewPlayground,代碼行數:16,代碼來源:CoerceLuaToJava.java

示例3: parseValue

/**
 * parse a value to given type
 *
 * @param type
 * @param value
 * @return
 */
private static Object parseValue(int type, LuaValue value) {
    switch (type) {
        case LuaValue.TBOOLEAN:
            if (isBoolean(value)) return value.checkboolean();
            break;
        case LuaValue.TNUMBER:
            if (isNumber(value)) return value.checknumber();
            break;
        case LuaValue.TSTRING:
            if (isString(value)) return value.checkjstring();
            break;
        case LuaValue.TTABLE:
            if (isTable(value)) return value.checktable();
            break;
        case LuaValue.TFUNCTION:
            if (isFunction(value)) return value.checkfunction();
            break;
        case LuaValue.TUSERDATA:
            if (isUserdata(value)) return value.checkuserdata();
            break;
        case LuaValue.TVALUE:
            return value;
    }
    return null;
}
 
開發者ID:alibaba,項目名稱:LuaViewPlayground,代碼行數:32,代碼來源:LuaUtil.java

示例4: buildState

/**
 * Print the state of a {@link LuaClosure} that is being executed
 *
 * @param cl      the {@link LuaClosure}
 * @param pc      the program counter
 * @param stack   the stack of {@link LuaValue}
 * @param top     the top of the stack
 * @param varargs any {@link Varargs} value that may apply
 */
public LuaPrint buildState(LuaClosure cl, int pc, LuaValue[] stack, int top, Varargs varargs) {
    // print opcode into buffer
    StringBuffer previous = ps;
    ps = new StringBuffer();
    buildOpCode(cl.p, pc);

    LogUtil.i(ps);

    ps = previous;
    format(ps.toString(), 50);

    // print stack
    ps.append('[');
    for (int i = 0; i < stack.length; i++) {
        LuaValue v = stack[i];
        if (v == null)
            ps.append(STRING_FOR_NULL);
        else switch (v.type()) {
            case LuaValue.TSTRING:
                LuaString s = v.checkstring();
                ps.append(s.length() < 48 ?
                        s.tojstring() :
                        s.substring(0, 32).tojstring() + "...+" + (s.length() - 32) + "b");
                break;
            case LuaValue.TFUNCTION:
                ps.append(v.tojstring());
                break;
            case LuaValue.TUSERDATA:
                Object o = v.touserdata();
                if (o != null) {
                    String n = o.getClass().getName();
                    n = n.substring(n.lastIndexOf('.') + 1);
                    ps.append(n + ": " + Integer.toHexString(o.hashCode()));
                } else {
                    ps.append(v.toString());
                }
                break;
            default:
                ps.append(v.tojstring());
        }
        if (i + 1 == top)
            ps.append(']');
        ps.append(" | ");
    }
    ps.append(varargs);
    ps.append("\n");
    return this;
}
 
開發者ID:alibaba,項目名稱:LuaViewPlayground,代碼行數:57,代碼來源:LuaPrint.java

示例5: type

public int type() {
	return LuaValue.TUSERDATA;
}
 
開發者ID:alibaba,項目名稱:LuaViewPlayground,代碼行數:3,代碼來源:IoLib.java

示例6: isUserdata

/**
 * is userdata
 *
 * @param target
 * @return
 */
public static boolean isUserdata(final LuaValue target) {
    return target != null && target.type() == LuaValue.TUSERDATA;
}
 
開發者ID:alibaba,項目名稱:LuaViewPlayground,代碼行數:9,代碼來源:LuaUtil.java


注:本文中的org.luaj.vm2.LuaValue.TUSERDATA屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。