我正在开发一个 Java 小程序,我在其中调用一个 javascript 函数:
boolean isAllowed = (boolean) win.eval("isPointMarkCreationAllowed()");
我想检查该函数是否存在,就像我们在 javascript 中所做的那样:
if (isPointMarkCreationAllowed == 'function')
无论如何在Java中可以做到这一点?
我正在开发一个 Java 小程序,我在其中调用一个 javascript 函数:
boolean isAllowed = (boolean) win.eval("isPointMarkCreationAllowed()");
我想检查该函数是否存在,就像我们在 javascript 中所做的那样:
if (isPointMarkCreationAllowed == 'function')
无论如何在Java中可以做到这一点?
没有实际尝试过,不会
win.eval("typeof isPointMarkCreationAllowed == 'function'");
做你想做的事并返回一个布尔值(真或假)?
您可以使用反射来测试方法是否存在。
例如,如果您有一个对象 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