java - can't refer to non final variable password -


i writing standalone code sending mail java. in program taking info user on console . here problem authentication part. passing user name , password mail id , passwrd of sender. showing error can.t refer non final variable password , from.

if final can't take user. plz me should do?

package mypackage;  import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.util.properties; import javax.mail.message; import javax.mail.messagingexception; import javax.mail.passwordauthentication; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimemessage;  public class sendmailssl {     public static void main(string[] args) throws ioexception {         properties props = new properties();         string host="";         string port="";         string s_port="";         string ="";         final string from="";         final string password="";         string subject="";         string context="";         bufferedreader in = new bufferedreader(new inputstreamreader(system.in));         system.out.println("configuration.... ");         system.out.println("mail.smtp.host=");         host = in.readline();         system.out.println("mail.smtp.socketfactoryport=");         s_port=in.readline();         props.put("mail.smtp.host", host);         props.put("mail.debug", "true");         props.put("mail.smtp.socketfactory.port", s_port);         props.put("mail.smtp.socketfactory.class",                 "javax.net.ssl.sslsocketfactory");         props.put("mail.smtp.auth", "true");         system.out.println("mail.smtp.port=");         port=in.readline();         props.put("mail.smtp.port", port);          system.out.println("authentication....");         system.out.println("username=");         from=in.readline();         system.out.println("password=");         password = in.readline();         session session = session.getdefaultinstance(props,             new javax.mail.authenticator()         {                 string = "";                 string password="";                 protected passwordauthentication getpasswordauthentication()                 {                     return new passwordauthentication(from,password);                 }             });          try {             system.out.println("mail sending process..");             system.out.println("to=");             to=in.readline();              message message = new mimemessage(session);             message.setfrom(new internetaddress(from));             message.setrecipients(message.recipienttype.to,                     internetaddress.parse(to));             system.out.println("subject=");             subject=in.readline();             message.setsubject(subject);             system.out.println("context=");             context = in.readline();             message.settext(context);              transport.send(message);             transport.send(message);              system.out.println("done");          } catch (messagingexception e) {             system.out.println("in catch blk");             throw new runtimeexception(e);         }     } } 

your precious me. in advance.

so thing final keyword makes variables write-once/read-only. means inner classes can reference them. should modify code reads info follows:

system.out.println("authentication...."); system.out.println("username="); final string = in.readline(); system.out.println("password="); final string password = in.readline(); 

then remove variable declarations in anonymous authenticator instance. reading final variables declared in outer code block. make sense?

by way, more accustomed programming in c? looks what's fouling trying have variables declared before starting in on logic, that's not @ necessary in java. in fact, makes code harder read!


Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -