Java未检查警告添加arraylist
这是主要节目Java未检查警告添加arraylist,java,arraylist,warnings,unchecked,Java,Arraylist,Warnings,Unchecked,这是主要节目 public class MainPerson { public MainPerson(){} public static void StartMainPerson() { int i = 1; ArrayList<SortedPair> PersonList; ArrayList<Person> InitializedPersonList; final int NUMBER_OF_PEOPLE = 6;
public class MainPerson {
public MainPerson(){}
public static void StartMainPerson()
{
int i = 1;
ArrayList<SortedPair> PersonList;
ArrayList<Person> InitializedPersonList;
final int NUMBER_OF_PEOPLE = 6;
PersonList = new ArrayList<>();
InitializedPersonList = new ArrayList<>();
InitializedPersonList.add(new Person( "Assaf Malki" , 1984));
InitializedPersonList.add(new Person( "Assaf Malki" , 1984));
InitializedPersonList.add(new Person( "Breanna Romberger" , 1920));
InitializedPersonList.add(new Person( "Latrice Lane" , 1930));
InitializedPersonList.add(new Person( "Bridgett Couch" , 1940));
InitializedPersonList.add(new Person( "Roxane Sova" , 1950));
InitializedPersonList.add(new Person( "Donnette Weston" , 1960));
InitializedPersonList.add(new Person( "Milton Kopecky" , 1970));
InitializedPersonList.add(new Person( "Rosella Vandoren" , 1980));
InitializedPersonList.add(new Person( "Kayleigh Willimas" , 1990));
InitializedPersonList.add(new Person( "Zula Lashua" , 2000));
InitializedPersonList.add(new Person( "Ralph Baudoin" , 2010));
InitializedPersonList.add(new Person( "Kenton Tseng" , 2005));
InitializedPersonList.add(new Person( "Brendon Gilchrest" , 1995));
Iterator itr = InitializedPersonList.iterator();
while(itr.hasNext())
{
System.out.print("Pair " + i + " is " + itr.next() + " and " + itr.next() + ".\n");
i = i + 1;
}
i = 0;
System.out.print("\n");
Iterator itr1 = InitializedPersonList.iterator();
while(i < NUMBER_OF_PEOPLE)
{
try{
System.out.println("Adding pair number " + (i+1) + "..");
PersonList.add(new SortedPair((Person) itr1.next(), (Person) itr1.next()));
}
catch (IllegalPair e)
{
System.out.println("Invalid input, same person name, try again.");
continue;
}
i = i + 1;
}
System.out.println("");
for (SortedPair Value : PersonList)
{
System.out.println(Value);
}
}
}
公共类MainPerson{
公共MainPerson(){}
公共静态无效StartMainPerson()
{
int i=1;
ArrayList个人主义者;
ArrayList初始化PersonList;
最终整数人数=6人;
PersonList=新的ArrayList();
InitializedPersonList=新的ArrayList();
缩写为personlist.add(新人(“Assaf Malki”,1984年));
缩写为personlist.add(新人(“Assaf Malki”,1984年));
缩写为personlist.add(新人物(“Breanna Romberger”,1920));
缩写为personlist.add(新人物(“Latrice Lane”,1930));
初始化PersonList.add(新人物(“Bridgett Coach”,1940));
姓名首字母缩写为personlist.add(新人(“Roxane Sova”,1950年));
缩写为personlist.add(新人(“Donnette Weston”,1960年));
缩写为personlist.add(新人(“Milton Kopecky”,1970年));
缩写为personlist.add(新人(“Rosella Vandoren”,1980年));
缩写为personlist.add(新人(“Kayleigh Willimas”,1990年));
缩写为personlist.add(新人物(“Zula Lashua”,2000年));
初始化PersonList.add(新人物(“拉尔夫·鲍登”,2010年));
姓名首字母缩写为personlist.add(新人(“Kenton Tseng”,2005年));
缩写为personlist.add(新人(“Brendon Gilchrest”,1995年));
迭代器itr=InitializedPersonList.Iterator();
while(itr.hasNext())
{
System.out.print(“对”+i+”是“+itr.next()+”和“+itr.next()+”\n”);
i=i+1;
}
i=0;
系统输出打印(“\n”);
迭代器itr1=InitializedPersonList.Iterator();
而(我<人数)
{
试一试{
System.out.println(“添加对号”+(i+1)+.”;
PersonList.add(新的sortedAir((Person)itr1.next(),(Person)itr1.next());
}
捕获物(非法者)
{
System.out.println(“输入无效,人名相同,请重试”);
继续;
}
i=i+1;
}
System.out.println(“”);
用于(分拣空气值:个人列表)
{
系统输出打印项次(值);
}
}
}
这是分拣机
public class SortedPair <E extends Comparable<E>>
{
E Max_Element;
E Min_Element;
public SortedPair(E FirstElement, E SecondElemnt) throws IllegalPair
{
int Compare_Result = FirstElement.compareTo(SecondElemnt);
if (Compare_Result == 0)
{
Max_Element = null;
Min_Element = null;
throw new IllegalPair(FirstElement.toString(), SecondElemnt.toString());
}
else if (Compare_Result > 0)
{
Max_Element = FirstElement;
Min_Element = SecondElemnt;
}
else
{
Max_Element = SecondElemnt;
Min_Element = FirstElement;
}
}
public E getFirst()
{
return Max_Element;
}
public E getSecond()
{
return Min_Element;
}
@Override
public String toString()
{
return String.format("%s is bigger then %s.", getFirst(), getSecond());
}
}
公共类分拣机
{
E Max_元素;
E最小元素;
公共分拣空气(E第一元素,E第二元素)抛出非法对
{
int Compare_Result=FirstElement.compareTo(SecondElemnt);
如果(比较结果==0)
{
Max_元素=null;
最小元素=null;
抛出新的非法对(FirstElement.toString(),SecondElemnt.toString());
}
否则如果(比较结果>0)
{
最大元素=第一元素;
最小元素=第二元素;
}
其他的
{
最大元素=第二元素;
最小元素=第一元素;
}
}
公共E getFirst()
{
返回Max_元素;
}
公共E getSecond()
{
返回最小元素;
}
@凌驾
公共字符串toString()
{
返回字符串.format(“%s大于%s.”,getFirst(),getSecond());
}
}
我得到以下警告
MainPerson.java:60: warning: [unchecked] unchecked call to SortedPair(E,E) as a member of the raw type SortedPair
PersonList.add(new SortedPair((Person) itr1.next(), (Person) itr1.next()));
^
where E is a type-variable:
E extends Comparable<E> declared in class SortedPair
MainPerson.java:60:警告:[未选中]未选中调用SortedPair(E,E)作为原始类型SortedPair的成员
PersonList.add(新的sortedAir((Person)itr1.next(),(Person)itr1.next());
^
其中E是一个类型变量:
E扩展了SortedPair类中声明的可比性
我不明白为什么
我尝试更改ArrayList InitializedPersonList代码>到ArrayList InitializedPersonList代码>但它不起作用
有什么想法吗,伙计们
我想问题很清楚,我可以添加多少常用文本。您需要的是
List<SortedPair<Person>> PersonList = new ArrayList<SortedPair<Person>>();
List<Person> InitializedPersonList = new ArrayList<Person>();
List PersonList=new ArrayList();
List InitializedPersonList=新建ArrayList();
请使用正确的Java格式。变量从不以大写字母开头。这使得阅读其他java开发人员的文章非常令人不安
顺便说一句:我认为Marco是对的。您尝试了初始化PersonList=newArrayList()
toInitializedPersonList=new ArrayList()
@Evans:这不会改变任何事情。您还应该得到一个关于迭代器的警告,遵循Java命名约定将有助于提高代码的可读性……为什么?我做错了什么?谢谢,是的。对此进行阐述;您的SortedPair类是通用类;您需要声明参数化类型(Person),我也尝试过这个。它给了我以下信息:类型参数Person不在类型变量E的范围内,其中E是一个类型变量:E扩展了SortedPair类中声明的Comparable您已经将SortedPair的参数类型声明为“扩展Comparable”;这是该类型的一个要求。类型(Person)实现了Compariable吗?@user2102697这意味着你的Person
类必须实现Compariable
它确实实现了公共类Person实现了Compariable{作为一个旁注,你应该把它作为一个注释,而不是一个答案,因为你没有回答OP的问题,而是发表评论(无意冒犯))