0

我正在开发一个 Java 小程序,我在其中调用一个 javascript 函数:

boolean isAllowed = (boolean) win.eval("isPointMarkCreationAllowed()");

我想检查该函数是否存在,就像我们在 javascript 中所做的那样:

if (isPointMarkCreationAllowed == 'function')

无论如何在Java中可以做到这一点?

4

2 回答 2

2

没有实际尝试过,不会

win.eval("typeof isPointMarkCreationAllowed == 'function'");

做你想做的事并返回一个布尔值(真或假)?

于 2013-01-28T14:56:43.163 回答
-1

您可以使用反射来测试方法是否存在。

例如,如果您有一个对象 foo,您可以在下面获取该对象的类中声明的所有方法:

Method[] methods = foo.getClass().getMethods();

这将返回类中声明的方法的数组。

然后只需使用 for 循环检查返回的数组中是否存在特定方法

for (Method m : methods)
{
     if (m.getName().equals(someString))
     {
        //do something
     }
}

someString 是您要查找的方法的名称,在您的情况下为“isPointMarkCreationAllowed”。

使用以下站点了解 Java 中的反射 http://docs.oracle.com/javase/tutorial/reflect/member/methodType.html

于 2013-01-28T14:50:33.160 回答