我有静态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
我怎样才能让它与这些类型一起使用?还可能是其他非原始类型的对象? 感谢
答案 0 :(得分:1)
您的对象可能不是整数,而是 Number ,其中包含 intValue()
您可以使用value.getClass()。getName()。
来检查实际类型