epubjs
Version:
Render ePub documents in the browser, across many devices
36 lines (35 loc) • 5.74 kB
HTML
<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"><</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>