Conversão de String para Calendar

4 respostas
Jhonatan_Nascimento

Bom dia, preciso de ajuda para converter uma data informada como String para Calendar. O exercício pede que isso seja feito no método construtor. Tentei dessa forma, mas tem apresentado um erro “void cannot be converted to Calendar”.

package atividade02;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.logging.Level;

import java.util.logging.Logger;

public class ProdutoPerecivel extends Produto {

private Calendar dataValidade;

public ProdutoPerecivel(String n, int q, double v, String data) {
    super(n, q, v);
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Calendar c = Calendar.getInstance();
    try {
        this.dataValidade = c.setTime (sdf.parse(data));
    } catch (ParseException ex) {
        Logger.getLogger(ProdutoPerecivel.class.getName()).log(Level.SEVERE, null, ex);
    }
      

}


public Calendar getDataValidade() {
    return dataValidade;
}

public void setDataValidade(Calendar dataValidade) {
    this.dataValidade = dataValidade);
}

}

4 Respostas

darlan_machado

Posta o stack trace completo do erro.

staroski

O método setTime é void então ele não retorna nada, mas você está tentando atribuir o retorno à uma variável.

Você nem precisa dessa variável local c, pode fazer diretamente assim:

dataValidade = Calendar.getInstance();
dataValidade.setTime(sdf.parse(data));
fventurajr

Não entendi esse construtor super(n, q, v) uma vez que a classe ProdutoPerecivel não herda(extends) de outra classe que não a Object.

Você imagina que ela faça:

<strong>this.n = n;</strong>

<strong>this.q = q;</strong>

<strong>this.v = v;</strong>

Aliás onde estão as variáveis de instância?
staroski
public class ProdutoPerecivel extends Produto {
Criado 14 de outubro de 2019
Ultima resposta 14 de out. de 2019
Respostas 4
Participantes 4