作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不能在数组 clientes[i] 上使用方法 setter setMarcaCelular。我认为问题出在开关上,但我现在不知道为什么,我正在学习 Java,所以我很快就失去了 self 。这是我的错误。对不起,我的英语很糟糕。线程“main”中的异常 java.lang.NullPointerException 在 principal1.Principal1.main(Principal1.java:30)
package principal1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import recursos.Cliente;
public class Principal1 {
public static void main(String[] args) throws IOException{
BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
int opc=0;
int ventasLG=0;
Cliente clientes[]=new Cliente[5];
for (int i = 0; i < clientes.length; i++) {
String nombre;
String marcaCelular="";
int celular=0;
System.out.println("Ingrese marca del celular:\n1.-Nokia\n2.-Motorola"
+ "\n3.-LG\n4.-Kyocera");
celular=Integer.parseInt(in.readLine());
switch(celular){
case 1:
clientes[i].setMarcaCelular("Nokia");
System.out.println("Ingrese nombre del cliente");
nombre=in.readLine();
System.out.println("Ingrese cedula de identidad");
int cedulaIdentidad=Integer.parseInt(in.readLine());
System.out.println("Ingrese precio del celular");
int precioCelular=Integer.parseInt(in.readLine());
clientes[i]=new Cliente(nombre, cedulaIdentidad, marcaCelular, precioCelular);
break;
case 2:
clientes[i].setMarcaCelular("Motorola");
System.out.println("Ingrese nombre del cliente");
nombre=in.readLine();
System.out.println("Ingrese cedula de identidad");
cedulaIdentidad=Integer.parseInt(in.readLine());
System.out.println("Ingrese precio del celular");
precioCelular=Integer.parseInt(in.readLine());
clientes[i]=new Cliente(nombre, cedulaIdentidad, marcaCelular, precioCelular);
break;
case 3:
clientes[i].setMarcaCelular("LG");
System.out.println("Ingrese nombre del cliente");
nombre=in.readLine();
System.out.println("Ingrese cedula de identidad");
cedulaIdentidad=Integer.parseInt(in.readLine());
System.out.println("Ingrese precio del celular");
precioCelular=Integer.parseInt(in.readLine());
clientes[i]=new Cliente(nombre, cedulaIdentidad, marcaCelular, precioCelular);
ventasLG++;
break;
case 4:
clientes[i].setMarcaCelular("Kyocera");
System.out.println("Ingrese nombre del cliente");
nombre=in.readLine();
System.out.println("Ingrese cedula de identidad");
cedulaIdentidad=Integer.parseInt(in.readLine());
System.out.println("Ingrese precio del celular");
precioCelular=Integer.parseInt(in.readLine());
clientes[i]=new Cliente(nombre, cedulaIdentidad, marcaCelular, precioCelular);
break;
default:
System.out.println("Opcion incorrecta");
最佳答案
创建数组
Cliente clientes[]=new Cliente[5];
并不意味着已经创建了 5 个 Cliente 实例并将其添加到数组中。您必须手动执行此操作
Cliente clientes[]=new Cliente[5];
for (int i = 0; i < clientes.lenght; i++) {
clientes[i] = new Cliente();
// do whatever you want
}
关于java - 我不能在数组上使用方法 setter setMarcaCelular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53226950/
我不能在数组 clientes[i] 上使用方法 setter setMarcaCelular。我认为问题出在开关上,但我现在不知道为什么,我正在学习 Java,所以我很快就失去了 self 。这是我
我是一名优秀的程序员,十分优秀!