Вызов статических методов Java из javascript для Rhino - PullRequest
2 голосов
/ 30 января 2012

У меня есть статические методы 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 Ответ

1 голос
/ 30 января 2012

Ваш объект, вероятно, не целое число, а скорее Число , которое имеет intValue ()

Вы можете проверить фактический тип, используя value.getClass (). GetName ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...