.java использует непроверенную и небезопасную операцию

вот мой java-код:

import javax.swing.*;

public class Employee1 extends JFrame {

    JPanel panel;
    JLabel l1;
    JList list;

    public Employee1() {
        super("Employee Details");
        panel = new JPanel();
        l1 = new JLabel("City : ");
        String cities[] = {"Mumbai", "Delhi", "Madras"};
        list = new JList(cities);
        panel.add(l1);
        panel.add(list);
        getContentPane().add(panel);
        setSize(400, 400);
        setVisible(true);
    }

    public static void main(String args[]) {
        Employee1 obj = new Employee1();
    }
}

этот код выдает мне предупреждение о том, что .java использует непроверенную и небезопасную операцию. у меня экзамены, пожалуйста, помогите мне пройти их.


person vbhvbhurke    schedule 14.09.2014    source источник


Ответы (1)


Вы должны использовать параметр типа для вашего JList, потому что это ошибка дженериков, а JList поддерживает дженерики.

Изменить:

с JList list по JList<String> list
и с list = new JList(cities) по list = new JList<>(cities)

public class Employee1 extends JFrame {
    private final JPanel panel;
    private final JLabel l1;
    private final JList<String> list;    // <--- first change

    public Employee1() {
        super("Employee Details");

        final String[] cities = {"Mumbai", "Delhi", "Madras"};

        panel = new JPanel();
        l1    = new JLabel("City : ");
        list  = new JList<>(cities);     // <--- second change

        panel.add(l1);
        panel.add(list);
        getContentPane().add(panel);

        setSize(400, 400);
        setVisible(true);
    }    
}

См. Урок: обобщения для получения информации и примеров по этой теме.

person ifloop    schedule 14.09.2014
comment
я новичок, так что объясните мне, где именно я должен изменить - person vbhvbhurke; 14.09.2014
comment
+1 за безопасность универсального типа, но см. также pack() и Initial Темы. - person trashgod; 14.09.2014