<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 97,  comments - 93,  trackbacks - 0

    Most developers have heard of, and possibly used, scripting languages such as Ruby, JavaScript, and Python. These dynamic languages are enjoying a resurgence in popularity, largely because of their flexibility and simplicity, and the productivity gains they promise.

    Java 6 comes with built-in support for scripting languages. You can embed scripts in various scripting languages into your Java applications, passing parameters, evaluating expressions, and retrieving results. And you can do it all pretty seamlessly.

    First of all, you obtain a new ScriptEngine object from a ScriptEngineManager, as shown here:

    ScriptEngineManager manager = new ScriptEngineManager();

    ScriptEngine engine = manager.getEngineByName("js");

    Each scripting language has its own unique identifier. The "js" here means you're dealing with JavaScript.

    Now you can start having some fun. Interacting with a script is easy and intuitive. You can assign scripting variables using the put() method and evaluate the script using the eval() method,. which returns the most recently evaluated expression processed by the script. And that pretty much covers the essentials. Here's an example that puts it all together:

    engine.put("cost", 1000);
    String decision = (String) engine.eval(
    "if ( cost >= 100){ " +
    "decision = 'Ask the boss'; " +
    "} else {" +
    "decision = 'Buy it'; " +
    "}");
    assert ("Ask the boss".equals(decision));

    You can do more than just pass variables to your scripts— you can also invoke Java classes from within your scripts. Using the importPackage() function enables you to import Java packages, as shown here:

    				
    
    engine.eval("importPackage(java.util); " +
    "today = new Date(); " +
    "print('Today is ' + today);");

    Another cool feature is the Invocable interface, which lets you invoke a function by name within a script. This lets you write libraries in scripting languages, which you can use by calling key functions from your Java application. You just pass the name of the function you want to call, an array of Objects for the parameters, and you're done! Here's an example:

    				
    
    engine.eval("function calculateInsurancePremium(age) {...}");
    Invocable invocable = (Invocable) engine;
    Object result = invocable.invokeFunction("calculateInsurancePremium",
    new Object[] {37});

    You actually can do a fair bit more than what I've shown here. For example, you can pass a Reader object to the eval() method, which makes it easy to store scripts in external files, or bind several Java objects to JavaScript variables using a Map-like Binding object. You can also compile some scripting languages to speed up processing. But you probably get the idea that the integration with Java is smooth and well thought-out.

    posted on 2007-03-07 21:49 wqwqwqwqwq 閱讀(468) 評論(0)  編輯  收藏 所屬分類: SUN Tech
    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567




    常用鏈接

    留言簿(10)

    隨筆分類(95)

    隨筆檔案(97)

    文章檔案(10)

    相冊

    J2ME技術網站

    java技術相關

    mess

    搜索

    •  

    最新評論

    閱讀排行榜

    校園夢網網絡電話,中國最優秀的網絡電話
    主站蜘蛛池模板: APP在线免费观看视频| 亚洲中文久久精品无码| 久久精品免费视频观看| 精品国产亚洲一区二区三区在线观看| 久久精品国产亚洲| 亚洲精品无码成人片在线观看 | av无码国产在线看免费网站| 中出五十路免费视频| 看亚洲a级一级毛片| 亚洲不卡影院午夜在线观看| 中文字幕亚洲第一在线| JLZZJLZZ亚洲乱熟无码| 全免费一级毛片在线播放| 91免费国产自产地址入| 久久免费精品一区二区| 九九视频高清视频免费观看| 亚洲狠狠婷婷综合久久蜜芽| 亚洲精品美女网站| 国产亚洲国产bv网站在线| 久久精品亚洲综合一品| 人人狠狠综合久久亚洲婷婷| 老司机亚洲精品影视www| 亚洲成a人片在线观看久| 又色又污又黄无遮挡的免费视 | 亚洲人xxx日本人18| 亚洲欧洲日产v特级毛片| 亚洲精品免费观看| 亚洲精品线在线观看| 久久精品亚洲视频| 亚洲人成网站在线播放影院在线| 久久夜色精品国产亚洲| 久久久亚洲精品视频| 亚洲另类激情综合偷自拍 | 91视频免费观看| 成人av片无码免费天天看| 中文字幕手机在线免费看电影| 精品久久久久久国产免费了| 中文字幕一区二区三区免费视频| 久久九九免费高清视频| 大地资源中文在线观看免费版| 久久久久久免费一区二区三区 |