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());
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!