java - How do I pass class object to singleton class?
问题描述
How do I pass the Users class object to the DataCenter class?
I have 2 classes called DataCenter and Users
The DataCenter is a singleton class.
Inside this DataCenter class, I have an ArrayList called "accounts"
accounts ArrayList have Users class objects.
Inside the Users class, I have 2 ArrayList
1- username
2- password
"username" and "password" ArrayList have login details
From the main class, I'll pass a username and password to DataCenter
It need to validate by checking the ArrayList.
Users.java
import java.util.ArrayList;
public class Users {
private DataCenter instance = DataCenter.getInstance();
private ArrayList<String> username = new ArrayList<String>();
private ArrayList<String> password = new ArrayList<String>();
private ArrayList<String> name = new ArrayList<String>();
private String accUsername;
private String accPassword;
private String accName;
public Users() {
username.add("12345678");
password.add("12345678");
name.add("John Doe");
}
public void setUsername(String inputUsername) {
this.accUsername = inputUsername;
}
public void setPassword(String inputPassword) {
this.accPassword = inputPassword;
}
public void setName(String inputName) {
this.accName = inputName;
}
public String getUserName() {
return accUsername;
}
public String getPassword() {
return accPassword;
}
public String getName() {
return accName;
}
}
DataCenter.java
import java.util.ArrayList;
public class DataCenter {
private static DataCenter dc = null;
private ArrayList<Users> accounts = new ArrayList<Users>();
private DataCenter() {
}
public static DataCenter getInstance() {
if (dc == null) {
dc = new DataCenter();
}
return dc;
}
public void setUsers(Users ac) {
synchronized (accounts) {
accounts.add(ac);
}
}
public ArrayList<Users> getUsers() {
return accounts;
}
// login auth check
public boolean accountValidation(String loginUsername, String loginPassword) {
boolean valid = false;
for (int i = 0; i < accounts.size(); i++) {
if (accounts.get(i).getUserName().equals(loginUsername) && accounts.get(i).getPassword().equals(loginPassword)) {
valid = true;
break;
} else {
valid = false;
}
}
return valid;
}
}
Main.java
public class Main{
public static void main(String[] args) {
DataCenter instance = DataCenter.getInstance();
System.out.println(instance.accountValidation("12345678", "12345678"));
}
}
解决方案
推荐阅读
- java - 使用可选包装器对多个条件执行 OR
- google-sheets - 查询中的 IF 语句
- r - 在 RMarkdown 中使用 browseURL 函数
- facebook - FB Graph API 返回 200 错误
- c++ - MPI_Get 仅从共享内存区域读取数组的第一个元素
- node.js - Electron 模块中的 App 对象和 getAppPath 抛出错误
- c++ - 在 Windows 上使用 Emscripten 和 CMake 编译 GLFM 的问题
- r - R循环遍历多个相互依赖的函数未能循环
- c++ - 从不同的标头访问外部结构成员
- reactjs - ReactJS - 道具和类