Java.lang.NullPointerException: Cannot read field "tipo" because "m" is null
Publicado por Mónica (5 intervenciones) el 24/02/2024 19:37:16
Buenas tardes:
Estoy escribiendo un método que me calcule el saldo de una cuenta. Después de muchas vueltas, el método calculaSaldo() ya no me da problemas de compilación, pero al ejecutarlo sale el siguiente mensaje:
Exception in thread "main" java.lang.NullPointerException: Cannot read field "tipo" because "m" is null
Por favor, ¿puede alguien decirme por qué?.
Gracias.
Estoy escribiendo un método que me calcule el saldo de una cuenta. Después de muchas vueltas, el método calculaSaldo() ya no me da problemas de compilación, pero al ejecutarlo sale el siguiente mensaje:
Exception in thread "main" java.lang.NullPointerException: Cannot read field "tipo" because "m" is null
Por favor, ¿puede alguien decirme por qué?.
Gracias.
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
// Vector que garda os datos do programaMovemento[] movementos = new Movemento[MAX_MOVEMENTOS];
// Movementos anotados no vector int numMovementos = 0;// Bucle principal da aplicacionvoid bucleApp() {
Opcion opcion;
do {mostraListaOpcions();
opcion = solicitaOpcion();
...
case SALDO ->
calculaSaldo();
}} while (opcion != Opcion.SAIR);
}...
} }// Solicitar ao usuario a opcion que quere executarOpcion solicitaOpcion() {
Scanner scanner = new Scanner(System.in);
int opcion;
System.out.print("\nIntroduce o numero de opcion a executar: ");
opcion = scanner.nextInt();
return Opcion.values()[opcion];
}// Anotar un novo movementovoid anotaMovemento(TipoMovemento tipo) {
Scanner scanner = new Scanner(System.in);
...
}// Mostrar a lista de movementos:void listaMovementos() {
System.out.println();
for (var indice = 0; indice < numMovementos; indice++) {
System.out.println(movementos[indice]);
}System.out.println();
} // Calcular o saldovoid calculaSaldo() {
BigDecimal saldo;
saldo = new BigDecimal(0);
for (Movemento m: movementos) {
if (m.tipo == TipoMovemento.ABONO) {
saldo = saldo.add(m.importe);
continue;
} else {
saldo = saldo.subtract(m.importe);
}System.out.println(saldo);
} }}Valora esta pregunta


0

