簡體   English   中英

檢查javascript函數是從Java applet定義的

[英]Check javascript function is defined from java applet

我正在開發一個Java小程序,我在其中調用javascript函數:

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

並且我想檢查該函數是否存在 ,就像我們在javascript中所做的那樣:

if (isPointMarkCreationAllowed == 'function')

反正用Java可以做到嗎?

沒有實際嘗試過,就不會

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

確切地執行您想要的操作並返回一個布爾值(true或false)?

您可以使用反射來測試方法是否存在。

例如,如果您有一個對象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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM