我写了一个bank,是单示例的
import java.util.*;
public class Bank{
private static Bank bankInstance=new Bank();
List<Customer> customers;private Bank(){
customers=new ArrayList<Customer>();
}public static Bank getBank(){
return bankInstance;
}
public void addCustomer(String i,String p,String f,String l){
customers.add(new Customer(i,p,f,l));
}
public int getNumOfCustomers(){
return customers.size();
}
public Customer getCustomer(int index){
return (customers.get(index));
}
public void deleteCustomer(int index){
customers.remove(index);
}
public void sortCustomers(){
Collections.sort(customers);
}}
有三个类用getBank()方法获取bank对象
先在一个类中添加了两个用户
为什么别的类引用时bank时用户的数目还是0个???
求高人指点
import java.util.*;
public class Bank{
private static Bank bankInstance=new Bank();
List<Customer> customers;private Bank(){
customers=new ArrayList<Customer>();
}public static Bank getBank(){
return bankInstance;
}
public void addCustomer(String i,String p,String f,String l){
customers.add(new Customer(i,p,f,l));
}
public int getNumOfCustomers(){
return customers.size();
}
public Customer getCustomer(int index){
return (customers.get(index));
}
public void deleteCustomer(int index){
customers.remove(index);
}
public void sortCustomers(){
Collections.sort(customers);
}}
有三个类用getBank()方法获取bank对象
先在一个类中添加了两个用户
为什么别的类引用时bank时用户的数目还是0个???
求高人指点
List<Customer> customers;
private static Bank bank; //new Bank()不能放在这里,虽然也是单例模式,但是新的bank会取代旧的bank,新new一次以前的就没了!!
private Bank(){
customers = new ArrayList<Customer>();
}
//单例模式主要看这里....
public static Bank getBank(){//用getBank过滤一下,如果已经new了bank,直接返回原来的bank,如果没有new,则新new一个bank!!
if(bank == null){
bank = new Bank();
return bank;
}
return bank;
}
}不知道还有什么好的办法没有!!
Bank.getBank()
代码好像没有问题。可以把你添加用户,得bank实例代码帖出来看看。
private static Bank bank = null;public static Bank getBank() {
if (bank == null) {
synchronized (Bank.class) {
if (bank == null)
bank = new Bank();
}
}
}
return bank;
}
if (bank == null) {
synchronized (Bank.class) {
if (bank == null)
bank = new Bank();
}
}
}
return bank;
}顶10L这段代码