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....