Does java have an equivalent to python __call__?
<p>Just started learning python, I've come across <code>__call__</code> method. I understand when <code>__init__</code> gets called and when <code>__call__</code> gets called by running a simple example:</p>

<pre><code>class Constructor:
    def __init__(self, a):
        print "__init__ called"

    def __call__(self):
        print "__call__ called"

    def dummy(self):
        print "a dummy method called"

print "creating x obj"
x = Constructor(1)
print "calling x object"
x()
</code></pre>

<p>console output:</p>

<pre><code>creating x obj
__init__ called
calling x object
__call__ called
</code></pre>

<p>My questions are:</p>

<ol>
<li>I come from java background, I know <code>__init__</code> maps to java constructor, does java have an equivalent to <code>__call__</code> to help me understand this better?</li>
<li>Can someone give me a simple example of when <code>__call__</code> can be useful?</li>
</ol>
