从rhino javascript调用静态Java方法

时间:2012-01-30 06:32:22

标签: java javascript methods rhino

我有静态java方法,我用这个方法添加到javascript:

public void addJavaMethod(Method method)
{
    try
    {
            FunctionObject fo = new FunctionObject(method.getName(), method, m_scope);
            FunctionObject.putProperty(m_scope, method.getName(), fo);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

我总是在这些方法中使用对象类作为参数,因为否则会出现错误,例如:

而不是

static void setSomeFloatValueHere(float value){}

我用:

static void setSomeFloatValueHere(Object value)
{//convert this object to a float}

对于布尔人,我可以直接演员:

static void setBoolean(Object b){someBooleanObject = (Boolean)b;}

但是对于int,float,long,double等,我不能这样做。 我收到一个错误:

org.mozilla.javascript.Undefined cannot be cast to java.lang.Integer

我怎样才能让它与这些类型一起使用?还可能是其他非原始类型的对象? 感谢

1 个答案:

答案 0 :(得分:1)

您的对象可能不是整数,而是 Number ,其中包含 intValue()

您可以使用value.getClass()。getName()。

来检查实际类型