2016-10-04 15 views
-1

現在、単純なJava MVCアプリケーションを実行しようとしています。私はモデルとコントローラとしてloginbeanとlogindaoクラスを持っています。私のビュー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"); 
    } 
} 

setメソッドを使用して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(); 

を:Javaの命名規則についての記事を読みます。クラス名は大文字で始まる必要があります。

0

デフォルト値を持たないメソッドで変数を宣言しています。 loginbean l = new loginbean();

メソッドのローカル変数へ

loginbean l; 

変更は、デフォルトの値を取得することはありません。だからあなたはそれらを使用する前にいくつかの値を割り当てる必要があります。

また、別の変数、

logindao l1 = new logindao(); 

のためにクラスに名前を付けるときの命名規則に従うことをお勧めします。彼らはCamelCaseを使うべきです。

だからあなたのクラス名はあなたが変数を初期化する必要がLoginDaoLoginBean

0

Bean(loginbean)とサービス(logindao)を初期化していません。コンストラクタを呼び出すことによって、両方を初期化する必要があります。

変数lでsetterを呼び出すだけで、loginbeanを初期化することはありません。

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

あなたは

LoginBean l = null; 

を宣言した場合もその後リットルのセッターメソッドを呼び出すと、NullPointerExceptionがスローされます。

関連する問題