Problemas en un constructor de copia
Publicado por jesus (2 intervenciones) el 07/10/2015 20:13:35
Tengo estas dos clases y al ejecutar el main me da un error al llamar al constructor de copia y me da este error:
1
2
3
4
Exception in thread "main" java.lang.NullPointerException
at java.util.AbstractCollection.addAll(Unknown Source)
at practica4.BolsaMod.<init>(BolsaMod.java:13)
at practica4.BolsaMain.main(BolsaMain.java:12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package practica4;
import java.util.*;
public class BolsaMod<E> extends AbstractCollection<E> implements Collection<E> {
protected LinkedList<E> data;
public BolsaMod(){
data=new LinkedList<E>();
}
public BolsaMod(Collection <? extends E> c){
this();
this.addAll(c);
}
@Override
public boolean add(E e){
return data.add(e);
}
public boolean esVacia(){
return data.isEmpty();
}
public boolean remove(Object o){
return data.remove(o);
}
@Override
public Iterator<E> iterator() {
// TODO Auto-generated method stub
return null;
}
@Override
public int size() {
// TODO Auto-generated method stub
return data.size();
}
@Override
public String toString () {
String cad = "( ";
for (E x : data) {
if (x instanceof String) {
cad += "\"" + x.toString() + "\" ";
}
else {
cad += x.toString() + " ";
}
}
return cad + ")";
}
@SuppressWarnings("unchecked")
public boolean equals (Object o) {
if (o == this)
return true;
if (! (o instanceof BolsaMod))
return false;
if (this.size() !=((BolsaMod<E>) o).size()) {
return false;
}
return data.equals(((BolsaMod<E>) o).data);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package practica4;
public class BolsaMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
BolsaMod<String> b=new BolsaMod<String>();
b.add("4");
b.add("7");
b.add("67");
System.out.println(b);
BolsaMod<String> b1=new BolsaMod<String>(b);//aqui da el error
//BolsaMod<String> b1=new BolsaMod<String>();
b1.add("4");
b1.add("67");
b1.add("7");
System.out.println(b1);
if (b.equals(b1))
System.out.println("Iguales");
else System.out.println("No Iguales");
}
}
Valora esta pregunta


0