#java #oop #vector #warnings
#java #ооп #вектор #предупреждения
Вопрос:
Я уже много времени пытаюсь скомпилировать следующий код, но я всегда получаю предупреждение:
warning: [unchecked] unchecked call to addElement(E) as a member of the raw type Vector
v.addElement(obj);
^
where E is a type-variable:
E extends Object declared in class Vector
Это происходит, хотя я объявил свой вектор с использованием generics. Не могли бы вы, пожалуйста, помочь мне?
import java.util.*;
public class Employee {
String name;
float sal;
int id;
public static void main(String args[]) {
Vector<Employee> vec = new Vector<Employee>();
int n, ch;
System.out.println("Enter the number of employees");
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
Create(vec, n);
System.out.println("Enter any 1 of the following choices ");
System.out.println("1 to insert a new record");
System.out.println("2 to delete an Employee record by name");
System.out.println("3 to delete by the ID");
ch = sc.nextInt();
switch (ch) {
case 1:
{
}
case 2:
{
}
}
}
public static void Create(Vector v, int n) {
String ename;
float esal;
int eid;
int i;
Scanner sc1 = new Scanner(System.in);
for (i = 0; i < n; i ) {
System.out.println("Enter the ID");
eid = sc1.nextInt();
System.out.println("Enter the name");
ename = sc1.next();
System.out.println("Enter the salary");
esal = sc1.nextFloat();
Employee obj = new Employee();
obj.name = ename;
obj.sal = esal;
obj.id = eid;
v.addElement(obj);
}
}
}
В этой программе я объявил класс Employee
и намереваюсь вызывать Create
метод n
несколько раз для добавления сведений о n
сотрудниках до этого, а затем выполнять другие функции.
Однако я изначально получил Xlint: непроверенное предупреждение, и после его повторной компиляции с Xlint: непроверенное имя файла я все еще получаю это предупреждение и не могу продолжить. Не могли бы вы мне помочь, пожалуйста?
Ответ №1:
Аргумент v
в вашем Create
методе объявлен как необработанный тип. Попробуйте добавить универсальный тип в объявление параметра, например:
public static void Create(Vector<Employee> v, int n) {
Вы можете прочитать больше о необработанных типах по следующей ссылке:
https://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html
Комментарии:
1. Большое вам спасибо!! Это решило мою проблему!!