2016-10-04 7 views
-1

В настоящее время я пытаюсь выполнить простое приложение Java MVC. У меня есть логин и логиндау как модель и контроллер. Мой вид loginview.java имеет следующий код.Возможно, переменная не была инициализирована ошибка

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"); 
    } 
} 

Я инициализировал l, используя методы набора, и l1 не имеет каких-либо элементов данных. Но я получаю ошибку

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

Вы заявили об этом, но все равно null. Вам нужно 'loginbean l = new loginbean();' –

ответ

2

Вы должны инициализировать переменные:

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

BTW: Читайте о именовании Java. Имена классов должны начинаться с символа верхнего регистра.

0

Вы объявляете переменную в методе, который не имеет значений по умолчанию;

loginbean l; 

Изменить его loginbean l = new loginbean();

Метод локальных переменных не получат значения по умолчанию. Поэтому перед использованием вам необходимо присвоить им некоторое значение.

Кроме того, для другой переменной,

logindao l1 = new logindao(); 

Это хорошая практика, чтобы следовать именования при именовании классов. Они должны использовать CamelCase.

Так что ваши имена классов должны быть LoginDao и LoginBean

0

Вы не инициализировали компонент (loginbean) и службу (logindao). Вы должны инициализировать их, вызвав их конструктор.

Просто вызов setter на переменной l не будет инициализировать loginbean.

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

Кроме того, если вы объявите

LoginBean l = null; 

Затем вызывается метод сеттер на л бросят NullPointerException.

Смежные вопросы