UNPKG

epubjs

Version:

Render ePub documents in the browser, across many devices

36 lines (35 loc) 5.74 kB
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>Java Statements and Expressions</title><link rel="stylesheet" href="core.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"/></head><body><div class="sect1" title="Java Statements and Expressions"><div class="titlepage"><div><div><h1 class="title"><a id="learnjava3-APP-B-SECT-2"/>Java Statements and Expressions</h1></div></div></div><p><a id="idx11248" class="indexterm"/>At the prompt or in a BeanShell script, you can type standard Java statements and expressions. Statements and expressions are all of the normal things that you’d include in a Java method: variable declarations and assignments, method calls, loops, and conditionals. You can declare classes in the usual way if you want to, but BeanShell allows you to write statements outside of a class or method in an unstructured way as well.</p><p>You can type statements exactly as they would appear in Java. You also have the option of working in a more scripting-language-like fashion, with “loosely typed” variables and arguments. In other words, you can be lazy and not declare the types of variables that you use (both primitives and objects). BeanShell will still give you an error if you attempt to misuse the actual contents of the variable. If you do declare types of variables or primitives, BeanShell will enforce them.</p><p>Here are some examples:</p><a id="I__tt1368"/><pre class="programlisting"> <code class="n">foo</code> <code class="o">=</code> <code class="s">"Foo"</code><code class="o">;</code> <code class="n">four</code> <code class="o">=</code> <code class="o">(</code><code class="mi">2</code> <code class="o">+</code> <code class="mi">2</code><code class="o">)*</code><code class="mi">2</code><code class="o">/</code><code class="mi">2</code><code class="o">;</code> <code class="n">print</code><code class="o">(</code> <code class="n">foo</code> <code class="o">+</code> <code class="s">" = "</code> <code class="o">+</code> <code class="n">four</code> <code class="o">);</code> <code class="c1">// print() is a bsh command</code> <code class="c1">// do a loop</code> <code class="k">for</code> <code class="o">(</code><code class="n">i</code><code class="o">=</code><code class="mi">0</code><code class="o">;</code> <code class="n">i</code><code class="o">&lt;</code><code class="mi">5</code><code class="o">;</code> <code class="n">i</code><code class="o">++)</code> <code class="n">print</code><code class="o">(</code><code class="n">i</code><code class="o">);</code> <code class="c1">// pop up an AWT frame with a button in it</code> <code class="n">button</code> <code class="o">=</code> <code class="k">new</code> <code class="n">JButton</code><code class="o">(</code><code class="s">"My Button"</code><code class="o">);</code> <code class="n">frame</code> <code class="o">=</code> <code class="k">new</code> <code class="n">JFrame</code><code class="o">(</code><code class="s">"My Frame"</code><code class="o">);</code> <code class="n">frame</code><code class="o">.</code><code class="na">getContentPane</code><code class="o">().</code><code class="na">add</code><code class="o">(</code> <code class="n">button</code><code class="o">,</code> <code class="s">"Center"</code> <code class="o">);</code> <code class="n">frame</code><code class="o">.</code><code class="na">pack</code><code class="o">();</code> <code class="n">frame</code><code class="o">.</code><code class="na">setVisible</code><code class="o">(</code> <code class="kc">true</code> <code class="o">);</code></pre><p>If you don’t like the idea of “loosening” Java syntax at all, you can turn off this feature of BeanShell with the following command:</p><a id="I__tt1369"/><pre class="programlisting"> <code class="n">setStrictJava</code><code class="o">(</code> <code class="kc">true</code> <code class="o">);</code></pre><div class="sect2" title="Imports"><div class="titlepage"><div><div><h2 class="title"><a id="learnjava3-APP-B-SECT-2.1"/>Imports</h2></div></div></div><p><a id="idx11249" class="indexterm"/>By default, BeanShell imports all of the core Java packages for you. You can import your own classes using the standard Java import declaration:</p><a id="I__tt1370"/><pre class="programlisting"> <code class="kn">import</code> <code class="nn">mypackage.*</code><code class="o">;</code></pre><p>In addition to regular package, class, and static imports, BeanShell can also import the methods and variables of an object instance into the current context using the <a id="I_indexterm_id838986" class="indexterm"/><code class="literal">importObject()</code> command. For example:<a id="I_indexterm_id838997" class="indexterm"/></p><a id="I__tt1371"/><pre class="programlisting"> <code class="n">Map</code> <code class="n">map</code> <code class="o">=</code> <code class="k">new</code> <code class="n">HashMap</code><code class="o">();</code> <code class="n">importObject</code><code class="o">(</code> <code class="n">map</code> <code class="o">);</code> <code class="n">put</code><code class="o">(</code><code class="s">"foo"</code><code class="o">,</code> <code class="s">"bar"</code><code class="o">);</code> <code class="n">print</code><code class="o">(</code> <code class="n">get</code><code class="o">(</code><code class="s">"foo"</code><code class="o">)</code> <code class="o">);</code> <code class="c1">// "bar"</code></pre></div></div></body></html>