Problema na formatação

Boa tarde galera, estou tendo um problema em usar o String.format

A princípio eu achei que o erro poderia estar ocorrendo porque eu declarei um objeto do tipo String e na formatação usei uma variável do tipo double, só que eu fiz o código exatamente do jeito que o professor mostrou na vídeo-aula(e roda perfeitamente) e no meu eclipse da erro.

Segue o código

public String toString() {
return name + “, $ " + String.format(”%.2f", price) + “, " + quantity
+ " units, Total: “
+ String.format(”%.2f”, totalValueInStock());

Qual o erro?

The method format(String, Object[]) in the type String is not applicable for the arguments (String, double)

Dá uma olhada nas configurações do projeto, procura a versão do compilador que está utilizando.

A versão do compilador é 1.7

Esse erro tá acontecendo porque o compilador não está “empacotando” sozinho o primitivo double para o tipo Double, que pode ser convertido para Object que o método String.format espera. Um primitivo double não pode ser convertido para Object. Esse conceito de converter um primitivo para um objeto automaticamente é chamado de Autoboxing, e só foi introduzindo no Java 5. Tem certeza que o eclipse está configurado para utilizar o compilador que você instalou? Dá uma olhada nas configurações do projeto, se não tiver olhado.

Uma alternativa para isolar o problema é compilar o projeto pelo terminal.

1 curtida

Olhei as configurações e consegui resolver, muito obrigada!