【问题标题】:Error says package does not exist but it is not a package, just an arrayList... Whats going on?错误说包不存在,但它不是一个包,只是一个arrayList......这是怎么回事?
【发布时间】:2018-11-21 17:17:28
【问题描述】:

下面代码的最后一行给出了以下错误:“预期

类型的非法开始

包 arrEmpleados 不存在”

package javaPrueba2;

import java.util.ArrayList;

class Principal {
    ArrayList<Empleado> arrEmpleados = new ArrayList<Empleado>(); 

arrEmpleados.add(new Empleado(541000, 2400.0, 40.0, 16, 20.0, 2));

Empleado 是另一个文件中的一个类。那一个,这个和main都在第一行显示的包javaPrueba2中...

如果我只是创建一个简单的字符串 ArrayList,也会返回同样的错误

ArrayList<String> arrEmpleados = new ArrayList(); 
arrEmpleados.add("ana"));

发生了什么事?我几乎从这里复制了 ArrayList 的方法: StackOverflow: Creating an Arraylist of Objects

所以如果这是错误的,我应该怎么做呢?

编辑: 根据请求,这是 Empleado 类:

package javaPrueba2;


public class Empleado{
    int nif, horasExtra, numHijos; // horasExtra son mensuales
    double sueldoBase, pagoHora, porcIRPF;

    Empleado(int nif, double sueldoBase, double pagoHora, int horasExtra, double porcIRPF, int numHijos){
        this.nif = nif;
        this.sueldoBase = sueldoBase;
        this.pagoHora = pagoHora;
        this.horasExtra = horasExtra;
        this.porcIRPF = porcIRPF;
        this.numHijos = numHijos;
        }


    //Calcula el complemento por horas extras realizadas
    double complemento(){
        return pagoHora * horasExtra;
    }

    //Calcula el sueldo bruto 
    double bruto(){
        return sueldoBase + this.complemento();
    }

    //Calcula las retenciones

    double retenciones(){
        int puntosDescuento;
        double porcentajeFinal;
        if (numHijos > 2){
            puntosDescuento = 2;
        } else puntosDescuento = 1;

        porcentajeFinal = porcIRPF - puntosDescuento;

        return porcentajeFinal * this.bruto() / 100;
    }

}

【问题讨论】:

  • 您应该将命令添加到方法而不是类声明中。
  • 您的 Empleado 课程在哪里?也发布。
  • 顺便说一句。这不是 Stack Exchange 的问题类型吗?该问题是否应该针对具有问题语言经验的程序员?我应该换一种说法吗?
  • 哦,现在读到这篇文章已经几乎正常睡觉了,我发现我完全失明了。我要删除这个问题吗?我认为它不会帮助任何人......

标签: java class object arraylist


【解决方案1】:

你应该从Java开始学习基础,指令只能在方法(或静态块)中

class Principal {
    ArrayList<Empleado> arrEmpleados = new ArrayList<Empleado>(); 

    public void addAEmpleado(){
        arrEmpleados.add(new Empleado(541000, 2400.0, 40.0, 16, 20.0, 2));
    }
}

【讨论】:

  • 谢谢,这就是我正在学习的基础知识...但是您的“提示”确实对我有帮助(希望其他初学者也...)... :)
猜你喜欢
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
  • 2014-10-27
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多