tf dir
现在我想将一个客户端添加到收银员[0]我这样做:
tf property *
一切正常但是当我想要打印收银员[1]的大小时,它会返回1,但它应该返回0,因为我没有向收银员添加任何人[1]。关于什么是错的任何想法?
class Client{
String name;
Client(String name){
this.name=name;
}
Client (){
name=null;
}
}
class Cashier{
LinkedList <Client> cashierclients;
Cashier(LinkedList<Client> cashierclients){
this.cashierclients=cashierclients;
}
Cashier(){
//this.cashierclients=null;
}
}
class test{
public static void main(String args []){
LinkedList<Client> l=new LinkedList<Client>();
//i do some scans here to add the names of persons to the LinkedList l
Cashier [] cashier=new Cashier[numberofcashiers];
for(int i=0;i<numberofcashiers; i++){
cashier[i]=new Cashier();
}
答案 0 :(得分:0)
以下代码
for(int i=0; i<10; i++){
cashier[i].cashierclients=empty;
}
使收银员[i] .cashierclients指向同一个对象
所以你可以找到
System.out.println(cashier[0].cashierclients == cashier[1].cashierclients);
等于true
我认为你应该将空格改为新的LinkedList()
将解决问题
答案 1 :(得分:0)
该程序现在正在运行,它显示收银员[1]大小的错误,应该返回0而不是1
import java.util.*;
class Client {
String name;
Client(String name) {
this.name = name;
}
Client() {
name = null;
}
}
class Cashier {
LinkedList<Client> cashierclients;
Cashier(LinkedList<Client> cashierclients) {
this.cashierclients = cashierclients;
}
Cashier() {
//this.cashierclients=null;
}
}
public class test {
public static void main(String args[]) {
LinkedList<Client> l = new LinkedList<Client>();
// i created this LinkedList to solve the nullpointerexception error
LinkedList<Client> empty =new LinkedList<Client>();
Client client1=new Client("Person1");
l.addLast(client1);
Cashier[] cashier = new Cashier[10];
for (int i = 0; i < 10; i++) {
cashier[i] = new Cashier();
}
// i did this to solve the nullpointerexception error
for(int i=0; i<10; i++){
cashier[i].cashierclients=empty;
}
cashier[0].cashierclients.addLast(l.get(0));
System.out.println(cashier[1].cashierclients.size());
//this should return zero
System.out.println(cashier[1].cashierclients.size());
}
}