Warning: [deprecation] Observable in java.util has been deprecated

Fala pessoal, ajudem me a resolver esse alerta ao compilar meu projeto java com -Xlint:deprecation, da-me a mensagem a baixo :point_down:

warning: [deprecation] Observable in java.util has been deprecated
public class MyTime extends Observable implements Runnable {

Baixo esta meu codigo :point_down:

package util;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Observable;
import java.util.Observer;

/**
*

  • @author Administrador
    */
    public class MyTime extends Observable implements Runnable {

    private String horas;

    public MyTime(Observer obs) {
    this.addObserver(obs);
    }
    public void run() {
    while(true){
    this.horas = new SimpleDateFormat(“dd/MM/yyyy - HH:mm:ss”).format(Calendar.getInstance().getTime());
    this.notifyObservers();
    }
    }

    public String getHoras() {
    return horas;
    }
    }

Observable foi depreciado para dar preferência a java.beans.
Se quiser continuar usando pode suprimir o aviso:
@SuppressWarnings("deprecation")

Suprimindo o aviso: @SuppressWarnings(“deprecation”) e recompilar, .Jar gerado irá rodar??

Ele roda mesmo sem o SuppressWarnings, pois isso é apenas um aviso, não erro.

Ou vc pode usar PropertyChangeListener: How to Write a Property Change Listener

1 curtida

Não o motivo, mais ele dá-me esses avisos e o .Jar não roda

Esse é o codigo. Como é que ficaria usando o PropertyChangeListener?
package util;


import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Observable;
import java.util.Observer;

/**
*

* @author Administrador
*/
public class MyTime extends Observable implements Runnable {private String horas;public MyTime(Observer obs) {
this.addObserver(obs);
}
public void run() {
while(true){
this.horas = new SimpleDateFormat(“dd/MM/yyyy - HH:mm:ss”).format(Calendar.getInstance().getTime());
this.notifyObservers();
}
}public String getHoras() {
return horas;
}
}

Tenta rodar o jar pela linha de comando e veja se está pipocando alguma exception.

1 curtida

Certo. Deu me outros warning, será que não roda por causa disso???

Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
C:\SGV_PRO\src\view\ViewPdv.java:857: warning: [unchecked] unchecked call to addItem(E) as a member of the raw type JComboBox
jcb.addItem(i + 1);
where E is a type-variable:
E extends Object declared in class JComboBox


private void jmiCancelarProdutoActionPerformed(java.awt.event.ActionEvent evt) {                                                   
    JComboBox jcb = new JComboBox();
    DefaultTableModel modelo = (DefaultTableModel) tbProdutos.getModel();
    for (int i = 0; i < modelo.getRowCount(); i++) {
        jcb.addItem(i + 1);
    }
    JOptionPane.showMessageDialog(null, jcb, "Selecione o item para cancelar!", JOptionPane.QUESTION_MESSAGE);
    int item = Integer.parseInt(jcb.getSelectedItem().toString());
    // pergunta verifica
    Object[] options = {"Sim", "Não"};
    int i = JOptionPane.showOptionDialog(this, "Tem certeza que deseja"
            + " excluir o item: " + item + " ?", "Atenção",
            JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
    if (i == JOptionPane.YES_OPTION) {
        modelo.removeRow(item - 1);
        //readiciona todos
        renumerarItens();
        this.jtfValorPagar.setText(new BLMascaras().arredondamentoComPontoDuasCasas(this.somaEAtualizaValorTotal()) + "");
    }
}

JComboBox é uma classe genérica e você está usando ela “raw” (sem especificar o tipo).
No seu caso acho que seria JComboBox<Integer>.

Valeu consegui safar me dessa. Agora estou com um outro semelhante, ohhhh… Até doi me cabeça:

warning: [unchecked] unchecked call to addItem(E) as a member of the raw type JComboBox
            cbEstado.addItem(listaModelEstados.get(i).getUf());
  where E is a type-variable:
    E extends Object declared in class JComboBox

Abaixo vai o meu codigo :point_down:

public class ViewCadCliente extends javax.swing.JDialog {

    ArrayList<ModelEstado> listaModelEstados = new ArrayList<>();

    private void listarEstados() {

        listaModelEstados = controllerEstado.getListaEstadoController();
        cbEstado.removeAllItems();
        for (int i = 0; i < listaModelEstados.size(); i++) {
            cbEstado.addItem(listaModelEstados.get(i).getUf());
        }
    }
}

public class ControllerEstado {

    public ArrayList<ModelEstado> getListaEstadoController(){
        return this.daoEstado.getListaEstadoDAO();
    }
}

public class DAOEstado extends ConexaoMySql {

    public ArrayList<ModelEstado> getListaEstadoDAO(){
        ArrayList<ModelEstado> listamodelEstado = new ArrayList<ModelEstado>();
        ModelEstado modelEstado = new ModelEstado();
        try {
            this.conectar();
            this.executarSQL(
                "SELECT "
                    + "codigo,"
                    + "uf,"
                    + "nome"
                 + " FROM"
                     + " estado ORDER BY uf"
                + ";"
            );

            while(this.getResultSet().next()){
                modelEstado = new ModelEstado();
                modelEstado.setCodigo(this.getResultSet().getInt(1));
                modelEstado.setUf(this.getResultSet().getString(2));
                modelEstado.setNome(this.getResultSet().getString(3));
                listamodelEstado.add(modelEstado);
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            this.fecharConexao();
        }
        return listamodelEstado;
    }
}

JComboBox<String>