2016-10-04 14 views
-1

Ich versuche derzeit, eine einfache Java MVC-Anwendung auszuführen. Ich habe eine loginbean und logindao Klasse als Modell und Controller. Meine Ansicht loginview.java hat den folgenden Code.Variable wurde möglicherweise nicht initialisiert Fehler

package view; 
import bean.loginbean; 
import java.io.*; 
import java.util.*; 
import java.sql.*; 
import dao.logindao; 
public class loginview{ 
    public static void main(String [] args){ 
     loginbean l; 
     System.out.println("Enter name : "); 
     Scanner s=new Scanner(System.in); 
     String n=s.nextLine(); 
     int a=s.nextInt(); 
     l.setname(n); 
     l.setage(a); 
     logindao l1; 
     int flag=l1.correct(l); 
     if(flag==1) 
      System.out.println("Correct"); 
     else 
      System.out.println("Incorrect"); 
    } 
} 

Ich habe initialisiert l set Methoden und l1 hat keine Daten Mitglieder. Aber ich bekomme den Fehler

loginview.java:14: error: variable l might not have been initialized 
     l.setname(n); 
     ^
loginview.java:17: error: variable l1 might not have been initialized 
     int flag=l1.correct(l); 
+0

Sie haben es deklariert, aber es ist immer noch null. Du brauchst loginbean l = new loginbean(); ' –

Antwort

2

Sie haben die Variablen zu initialisieren:

loginbean l = new loginbean(); 
logindao l1 = new logindao(); 

BTW: Lesen Sie über die Java-Namenskonventionen. Klassennamen sollten mit einem Großbuchstaben beginnen.

0

Sie deklarieren eine Variable in der Methode, die keine Standardwerte hat;

loginbean l; 

ändern es zu loginbean l = new loginbean();

Methode lokale Variablen werden keine Standardwerte erhalten. Sie müssen ihnen also einen Wert zuweisen, bevor Sie sie verwenden.

Auch für eine andere Variable,

logindao l1 = new logindao(); 

Es empfiehlt sich, Konventionen zu folgen Namensgebung, wenn Klassen zu benennen. Sie sollten CamelCase verwenden.

So sollte Ihre Klassennamen sein LoginDao und LoginBean

0

Sie haben die Bean (loginbean) und den Service (logindao) nicht initialisiert. Sie müssen beide initialisieren, indem Sie ihren Konstruktor aufrufen.

Nur Setter auf Variable aufrufen l initialisiert die Loginbean.

LoginBean l = new LoginBean(); // Follow Camel Case letters in Java 

Auch wenn Sie erklären

LoginBean l = null; 

Dann Setter-Methode auf l Aufruf wird Nullpointer werfen.

Verwandte Themen