<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 閱讀(475) 評論(0)  編輯  收藏 所屬分類: SUN Tech
    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567




    常用鏈接

    留言簿(10)

    隨筆分類(95)

    隨筆檔案(97)

    文章檔案(10)

    相冊

    J2ME技術網站

    java技術相關

    mess

    搜索

    •  

    最新評論

    閱讀排行榜

    校園夢網網絡電話,中國最優秀的網絡電話
    主站蜘蛛池模板: 九九精品免费视频| 一级毛片免费观看| 免费大香伊蕉在人线国产| 久久久久亚洲精品日久生情| 国产无遮挡无码视频免费软件| 狠狠亚洲狠狠欧洲2019| a一级毛片免费高清在线| 国产成人毛片亚洲精品| 一区二区三区免费视频观看| 久久精品国产精品亚洲| 精品免费久久久久国产一区| 在线播放亚洲第一字幕| 国精产品一区一区三区免费视频| 亚洲乱码国产乱码精品精| 精品国产免费一区二区三区香蕉| 亚洲线精品一区二区三区| a级毛片免费完整视频| 亚洲s色大片在线观看| 精品免费人成视频app| 亚洲av永久无码精品天堂久久| 国拍在线精品视频免费观看| 亚洲色大成网站www久久九| 国产91在线免费| 久久国产福利免费| 亚洲午夜久久久精品影院| 91麻豆最新在线人成免费观看| 伊人久久五月丁香综合中文亚洲| 日本一区二区三区日本免费| 污视频网站免费在线观看| 亚洲成Av人片乱码色午夜| 无码精品A∨在线观看免费| 香港特级三A毛片免费观看| 亚洲日韩精品一区二区三区| 久久久久久AV无码免费网站下载 | 国产精品偷伦视频观看免费| 亚洲丝袜美腿视频| 青青青国产免费一夜七次郎| 免费又黄又爽又猛大片午夜| 久久精品亚洲精品国产色婷| 日韩吃奶摸下AA片免费观看| 无遮挡国产高潮视频免费观看|