Java - java.lang.NullPointerException como se soluciona??

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

java.lang.NullPointerException como se soluciona??

Publicado por kaizeniano (4 intervenciones) el 15/05/2020 12:44:22
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
public class test {
 
	public static void main (String[] args) {
		vaso[] vasos = new vaso[99];
		vasos[0] = new vaso("azul","carton",4,7,10);
		vasos[1] = new vaso("azul","carton",4,7,10);
		vasos[2] = new vaso("azul","carton",5,8,10);
		vasos[3] = new vaso("azul","carton",8,8,10);
		vasos[4] = new vaso("azul","carton",4,13,9);
		vasos[5] = new vaso("azul","carton",5,12,10);
 
 
 
		//ordena los vasos por su volumen
		vaso temp;
		for(int i = 1; i < vasos.length; i++) {
			for(int j = 0; j < (vasos.length - 1); j++) {
				if(vasos[j].compareTo(vasos[j+1])>0){
					temp = vasos[j];
					vasos[j]= vasos[j+1];
					vasos[j+1] = temp;
				 }
			}
		}
		//printea los vasos fabricados en un dia
		for(int i = 0;i<6;i++)
		{
			System.out.println(vasos[i].toString());
		}
		System.out.println(vasos[0].comparador(vasos[1]));
	}
}
 
 
 
public class vaso implements Comparable <vaso> {
 
 
	private String color;
	private String material;
	private int RadioPeq;
	private int altura;
	private int RadioGra;
	private double volumen = getVolumen();
	//constructor
	vaso(String color,String material,int RadioPeq,int altura,int RadioGra){
		this.color = color;
		this.material = material;
		this.RadioPeq = RadioPeq;
		this.altura = altura;
		this.RadioGra = RadioGra;
		this.volumen = getVolumen();
	}
	//constructor default para color y material.
	vaso(int RadioPeq,int altura,int RadioGra){
		this.color = "blanco";
		this.material = "plastico";
		this.RadioPeq = RadioPeq;
		this.altura = altura;
		this.RadioGra = RadioGra;
		this.volumen = getVolumen();
	}
	//metodo obtener volumen del vaso
	public double getVolumen(){
		return Math.PI/(12*getAltura()*(Math.pow(getRadioGra(),2)+getRadioPeq()*getRadioGra()+Math.pow(getRadioPeq(),2)));
	}
 
 
	//setter's y getter's
 
	public String getColor()
	{
		return color;
	}
	public void setColor(String color)
	{
		this.color = color;
	}
 
	public String getMaterial()
	{
		return material;
	}
	public void setMaterial(String material)
	{
		this.material = material;
	}
 
	public int getRadioPeq()
	{
		return RadioPeq;
	}
	public void setRadioPeq(int RadioPeq)
	{
		this.RadioPeq = RadioPeq;
	}
 
	public int getAltura()
	{
		return altura;
	}
	public void setAltura(int altura)
 
	{
		this.altura = altura;
	}
 
	public int getRadioGra()
	{
		return RadioGra;
	}
	public void setRadioGra(int RadioGra)
	{
		this.RadioGra = RadioGra;
	}
 
	//toString
	public String toString()
	{
		return "Color: "+color+" Material: "+material+" Radio pequenyo: "+RadioPeq+" Radio grande: "+RadioGra+" Altura: "+altura+" Volumen: "+volumen;
	}
 
	//metodo para comparar los vasos y poder ordenarlos
	public int compareTo(vaso o)
	{
		int resultado = 0;
		if(this.volumen < o.volumen){
			resultado = -1;
		}
		if(this.volumen > o.volumen){
			resultado = 1;
		}
		return resultado;
	}
	public boolean comparador(vaso o)
	{
		if((o instanceof vaso)&&(((vaso)o).color==this.color)&&(((vaso)o).material==this.material)&&(((vaso)o).RadioGra==this.RadioGra)&&(((vaso)o).RadioPeq==this.RadioPeq)&&(((vaso)o).altura==this.altura)){
			return true;
		}else{
			return false;
		}
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

java.lang.NullPointerException como se soluciona??

Publicado por Rodrigo (623 intervenciones) el 15/05/2020 13:00:47
El arreglo vasos tiene tamano 99, pero solo asignas 6 de ellos, el resto son null.
Luego haces un ciclo hasta vasos.length y este compara estos null contra otros vasos invocando el metodo compareTo().
Si no asignas todos los elementos, o bien chequeas si es null antes de comparar, o bien limitas tus ciclos para que no vayan mas alla del limite de lo que has asignado.

Nada que ver con el nullpointerexception, tu metodo comparador recibe un vaso de parametro y la implementacion pregunta si es instanceof vaso, lo que es superfluo, pues es el tipo que indicas que se recibe, y se hacen varios cast al tipo vaso, que tambien resultan superfluos por la misma razon.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

java.lang.NullPointerException como se soluciona??

Publicado por kaizeniano (4 intervenciones) el 15/05/2020 13:04:18
cierto estoy comenzando con java y hago algunos errores fatales, muchas gracias por contestar!!
xd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar