检查实际类型
我有静态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
我如何才能让它也适用于这些类型?以及可能的其他非基元类型的对象?感谢
您的对象可能不是Integer,而是Number,它具有intValue()
您可以使用value.getClass().getName().