package user.pojo;public class User {
private int ID;
private String name;
private String password;public User(int id, String name, String password) {
super();
ID = id;
this.name = name;
this.password = password;
}
public int getID() {
return ID;
}
public void setID(int id) {
ID = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package user.dao;import java.util.List;import user.pojo.User;public interface UserDao {
void addUsers(User user);
//void getAllUsers(List list);
User getUserByNameAndPw(String name,String password);
}
package user.daoimp;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;import user.dao.UserDao;
import user.pojo.User;public class UserDaoImp implements UserDao {
private static List list=new ArrayList();
public List getList(){
return this.list;
}
// public void getAllUsers(List list) {
// TODO Auto-generated method stub
// this.list=list;
//}
public void addUsers(User user){
list.add(user);
} @Override
public User getUserByNameAndPw(String name,String password) {
// TODO Auto-generated method stub
Iterator it=list.iterator();
User user=null;
while(it.hasNext()){
User uu=(User)(it.next());
if(uu.getName()==name&&uu.getPassword()==password)
user=uu;
}
return user;
}
}package user.factory;import user.dao.UserDao;
import user.daoimp.UserDaoImp;public class Factory {
public static UserDao getUserInstance(){
return new UserDaoImp();
}
}
package user.test;import java.io.BufferedReader;
import java.io.FileReader;import user.dao.UserDao;
import user.factory.Factory;
import user.pojo.User;public class Test { /**
* @param args
*/
public static void main(String[] args) {
UserDao userSystem=Factory.getUserInstance();
try{
FileReader fr=new FileReader("user.txt");
BufferedReader br=new BufferedReader(fr);
String message=null;
while((message=br.readLine())!=null){
String[] cat=message.split("=");
User user=new User(Integer.parseInt(cat[0]),cat[1],cat[2]);
//System.out.println(user.getID()+user.getName()+user.getPassword());
userSystem.addUsers(user);
}
}
catch(Exception e){
e.printStackTrace();
}
User superuser=userSystem.getUserByNameAndPw("zhangsan", "23424343");
System.out.println(superuser.getID()+superuser.getName()+superuser.getPassword());//这里到底怎么了?~~~~(>_<)~~~~
}
}
private int ID;
private String name;
private String password;public User(int id, String name, String password) {
super();
ID = id;
this.name = name;
this.password = password;
}
public int getID() {
return ID;
}
public void setID(int id) {
ID = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package user.dao;import java.util.List;import user.pojo.User;public interface UserDao {
void addUsers(User user);
//void getAllUsers(List list);
User getUserByNameAndPw(String name,String password);
}
package user.daoimp;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;import user.dao.UserDao;
import user.pojo.User;public class UserDaoImp implements UserDao {
private static List list=new ArrayList();
public List getList(){
return this.list;
}
// public void getAllUsers(List list) {
// TODO Auto-generated method stub
// this.list=list;
//}
public void addUsers(User user){
list.add(user);
} @Override
public User getUserByNameAndPw(String name,String password) {
// TODO Auto-generated method stub
Iterator it=list.iterator();
User user=null;
while(it.hasNext()){
User uu=(User)(it.next());
if(uu.getName()==name&&uu.getPassword()==password)
user=uu;
}
return user;
}
}package user.factory;import user.dao.UserDao;
import user.daoimp.UserDaoImp;public class Factory {
public static UserDao getUserInstance(){
return new UserDaoImp();
}
}
package user.test;import java.io.BufferedReader;
import java.io.FileReader;import user.dao.UserDao;
import user.factory.Factory;
import user.pojo.User;public class Test { /**
* @param args
*/
public static void main(String[] args) {
UserDao userSystem=Factory.getUserInstance();
try{
FileReader fr=new FileReader("user.txt");
BufferedReader br=new BufferedReader(fr);
String message=null;
while((message=br.readLine())!=null){
String[] cat=message.split("=");
User user=new User(Integer.parseInt(cat[0]),cat[1],cat[2]);
//System.out.println(user.getID()+user.getName()+user.getPassword());
userSystem.addUsers(user);
}
}
catch(Exception e){
e.printStackTrace();
}
User superuser=userSystem.getUserByNameAndPw("zhangsan", "23424343");
System.out.println(superuser.getID()+superuser.getName()+superuser.getPassword());//这里到底怎么了?~~~~(>_<)~~~~
}
}
public User getUserByNameAndPw(String name, String password) {
Iterator it = list.iterator();
while (it.hasNext()) {
User uu = (User) it.next();
//不能用== ,用equals方法进行字符串值的比较
if (name.equals(uu.getName())&&password.equals(uu.getPassword()))
return uu;
}
return null;
}因为你是进行String的比较,你如果用==比较的话永远都不相等,==比较的是字符串对象的地址
你改成equals 即可
不是哎,"=="是既能比较普通变量,又能比较引用变量的。对于String类型,已经自动重写了equals方法,也就是对String来说,只要两着字符相等,用"=="和equals比较都相等而且我试过了,用equals来比较的话,也不能执行。
看来你还是没有理解==和equals我已经调试过你的代码了,使用我修改后的已经运行完全正常。
啊,果然好啦!!!!谢谢谢谢,真是好人啊,这么一大段代码,真是辛苦你了。至于equals和“==”,我现在已经理解了,刚才看了一些资料。谢谢你哈。不过还没有完全理解为什么要这么来写,最后返回个null,不会把while循环中的返回值给给覆盖掉呢?