У меня есть статические методы 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
Как мне заставить это работать и с этими типами? и, возможно, другие объекты не примитивного типа?
Спасибо