Ajuda em Erro "Cannot find symbol"

2 respostas
T

Boa noite.
Estou com um erro aqui. Não sei explicar a razao, entao segue abaixo o código

public class PayrollSystemTest {
    public static void main(String[] args) {
        
        SalariedEmployee salariedEmployee = new SalariedEmployee("Johnn", "Smith", "111-11-1111", 800.00);
        HourlyEmployee hourlyEmployee = new HourlyEmployee("Karen", "Price", "222-22-2222", 16.75, 40);
        ComissionEmployee comissionEmployee = new ComissionEmployee("Sue", "Jones", "333-33-3333", 10000, .06);
        BasePlusComissionEmployee basePlusComissionEmployee = new BasePlusComissionEmployee("Bob", "Lewis", "444-44-4444", 5000, .04, 300);
        
        System.out.printf("%s\n%s: $%.2f\n\n", salariedEmployee, "earned", salariedEmployee.earnings());
        System.out.printf("%s\n%s: $%.2f\n\n", hourlyEmployee, "earned", hourlyEmployee.earnings());
        System.out.printf("%s\n%s: $%.2f\n\n", comissionEmployee, "earned", comissionEmployee.earnings());
        System.out.printf("%s\n%s: $%.2f\n\n", BasePlusComissionEmployee, "earned", basePlusComissionEmployee.earnings());
    
        Employee[] employees = new Employee[4];
        
        employees[0] = salariedEmployee;
        employees[1] = salariedEmployee;
        employees[2] = salariedEmployee;
        employees[3] = salariedEmployee;
        
        System.out.println("Employees processed polymorphically: \n");
        
        for (Employee currentEmployee : employees) {
            System.out.println(currentEmployee);
            
            if (currentEmployee instanceof BasePlusComissionEmployee){
                BasePlusComissionEmployee employee = (BasePlusComissionEmployee) currentEmployee;
                employee.setBaseSalary(1.10 * employee.getBaseSalary());
                System.out.printf("new base salary with 10% increase is: $%,.2f\n", employee.getBaseSalary());
             }
            System.out.printf("earned $%,.2f\n\n", currentEmployee.earnings());
            
        }
        for (int i = 0; i < employees.length; i++) {
            System.out.printf("Employee %d is a %s\n", i, employees[i].getClass().getName());
        }
    }

Alguém poderia me explicar porque a parte em negrito está dando esse erro?
System.out.printf("%s\n%s: $%.2f\n\n", BasePlusComissionEmployee, "earned", basePlusComissionEmployee.earnings());

2 Respostas

gaulix

não coloca o nome de uma variável igual ao nome da classe…

tu escreveu assim:

System.out.printf("%s\n%s: $%.2f\n\n", BasePlusComissionEmployee, "earned", basePlusComissionEmployee.earnings());

e era pra ser assim:

System.out.printf("%s\n%s: $%.2f\n\n", basePlusComissionEmployee, "earned", basePlusComissionEmployee.earnings());

Viu a diferença? Um simples B maiúsculo, estas tentando imprimir a classe e não o objeto

T

[quote=gaulix]não coloca o nome de uma variável igual ao nome da classe…

tu escreveu assim:

System.out.printf("%s\n%s: $%.2f\n\n", BasePlusComissionEmployee, "earned", basePlusComissionEmployee.earnings());

e era pra ser assim:

System.out.printf("%s\n%s: $%.2f\n\n", basePlusComissionEmployee, "earned", basePlusComissionEmployee.earnings());

Viu a diferença? Um simples B maiúsculo, estas tentando imprimir a classe e não o objeto[/quote

Valeu!
Eu já tinha visto isso, mas eu estava copiando igualzinho ao livro, até as maiusculas e minusculas. Por isso fiz em maiuscula. Mas já que é isso, valeu =P

T+
Otto

Criado 28 de outubro de 2012
Ultima resposta 28 de out. de 2012
Respostas 2
Participantes 2