2016-10-04 86 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

你已经声明它,但它仍然是空的。你需要'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。

所以,你的类名应该是LoginDaoLoginBean

0

您尚未初始化bean(loginbean)和service(logindao)。你需要通过调用它们的构造函数来初始化它们。

只需调用变量l的setter就不会初始化loginbean。

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

此外,如果你申报

LoginBean l = null; 

然后调用开左setter方法将抛出NullPointerException。