Pessoal,
esta dando erro nesta linha :
listaGruposDoMetodo.put(obj[0], new Dinheiro(obj[1]));
erro :
cannot find symbol
symbol : constructor Dinheiro(java.lang.Object)
location: class br.com.cqa.lims.financeiro.Dinheiro
segue abaixo minha classe
public GruposDoMetodo listaGruposDoMetodo(Metodo metodo){
System.out.println("listaGruposDoMetodo ");
GruposDoMetodo gruposDoMetodo = new GruposDoMetodo();
Map<Long, Dinheiro> listaGruposDoMetodo = new HashMap <Long, Dinheiro>();
gruposDoMetodo.setMetodoId(metodo.getId());
try{
ini = new InitialContext();
PrecoPorMetodoServiceLocal PrecoPorMetodoBean = (PrecoPorMetodoServiceLocal)ini.lookup("PrecoPorMetodoServiceBean/local");
List<Object> objectList =PrecoPorMetodoBean.selecionaprecopormetodo(metodo);
Iterator iterator = objectList.iterator();
while(iterator.hasNext()){
Object []obj = (Object[])iterator.next();
System.out.print(obj[0]);
System.out.print(" ");
System.out.println(obj[1]);
listaGruposDoMetodo.put(obj[0], new Dinheiro(obj[1]));
}
System.out.println("carregou list precopormetodo");
gruposDoMetodo.setListaGrupoDeMetodos(listaGruposDoMetodo);
return gruposDoMetodo;
} catch (Exception e){
System.out.println("Erro ao ler GruposDoMetodo para o metodo " + metodo.getNome() + ".");
return gruposDoMetodo;
}
}
classe dinheiro
@Embeddable
public class Dinheiro implements Serializable {
private static final long serialVersionUID = 153086301626156806L;
private static final String MASK = "#,##0.00";
private BigDecimal valor;
public Dinheiro() {
this.valor = new BigDecimal(0);
}
public Dinheiro(BigDecimal valor) {
this.valor = valor;
}
public Dinheiro(String valor) {
DecimalFormat formatter = new DecimalFormat(MASK);
formatter.setDecimalFormatSymbols(new DecimalFormatSymbols(new Locale(
"pt", "BR")));
try {
this.valor = new BigDecimal(formatter.parse(valor).doubleValue());
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
public Dinheiro(double valor) {
this.valor = new BigDecimal(valor);
}
public BigDecimal getValor() {
return valor;
}
public double doubleValue() {
return valor.doubleValue();
}
@SuppressWarnings("unused")
private BigDecimal setValor(BigDecimal valor) {
return this.valor = valor;
}
public Dinheiro soma(Dinheiro dinheiro) {
return new Dinheiro(this.valor.add(dinheiro.valor));
}
public Dinheiro subtrai(Dinheiro dinheiro) {
return new Dinheiro(this.valor.add(dinheiro.valor.negate()));
}
public Dinheiro multiplicar(double multiplicador) {
BigDecimal aux = new BigDecimal(multiplicador);
return new Dinheiro(aux.multiply(this.valor));
}
public Dinheiro divide(double divisor) {
BigDecimal aux = new BigDecimal(divisor);
return new Dinheiro(this.valor.divide(aux, 2, RoundingMode.HALF_EVEN));
}
@Override
public String toString() {
DecimalFormat formatter = new DecimalFormat(MASK);
formatter.setDecimalFormatSymbols(new DecimalFormatSymbols(new Locale(
"pt", "BR")));
return formatter.format(valor);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((toString() == null) ? 0 : toString().hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final Dinheiro other = (Dinheiro) obj;
if (toString() == null) {
if (other.toString() != null)
return false;
} else if (!toString().equals(other.toString()))
return false;
return true;
}
}