关于java泛型的问题
关于java泛型的问题,程序抛出ClassCastExceptio异常共有4个类,分别是Huffman,Tree,Data,Client,其中Tree实现了查找二叉树的一些基本功能,类定义如下publicclassTree<TextendsComparable<?superT>>,在Client中,对程序进行测试,publicclassClient{publicstaticvoidmain(Stringargv[]){List<Data<Character>>mysouce=newArrayList<Data<Character>>(5);Data<Character>tempData;tempData=newData<Character>('a',0.35);mysouce.add(tempData);tempData=newData<Character>('b',0.1);mysouce.add(tempData);tempData=newData<Character>('c',0.2);mysouce.add(tempData);tempData=newData<Character>('d',0.2);mysouce.add(tempData);tempData=newData<Character>('_',0.15);mysouce.add(tempData);Huffman<Data<Character>>mytree=newHuffman<Data<Character>>(mysouce);mytree.getHuffmanTree();}Data类如下publicclassData<T>implementsComparable<Data<T>>{Tdata;doublep;publicData(Tdata,doublep){this.data=data;this.p=p;}@OverridepublicintcompareTo(Data<T>o){//TODOAuto-generatedmethodstubif(this.p-o.p>0)return1;elseif(this.p-o.p<0)return-1;elsereturn0;}}Huffman类如下:importjava.util.List;importjava.util.PriorityQueue;publicclassHuffman<TextendsComparable<?superT>>{privateList<T>src;publicHuffman(List<T>src){this.src=src;}publicTree<T>getHuffmanTree(){PriorityQueue<Tree<T>>myqueue=newPriorityQueue<Tree<T>>();Tree<T>tempTree;for(inti=0;i<src.size();i++){tempTree=newTree<T>();tempTree.addElement(src.get(i));myqueue.add(tempTree);//这里会抛出异常}for(Tree<T>)System.out.println(see.getData());returnnull;}}运行时抛出的异常如下Exceptioninthread"main"java.lang.ClassCast (UnknownSource)atjava.util.PriorityQueue.siftUp(UnknownSource)atjava.util.PriorityQueue.offer(UnknownSource)atjava.util.PriorityQueue.add(UnknownSource)atHuffman.getHuffmanTree(Huffman.)atClient.main(Client.)无编译错误,但总是抛出如上异常
Tree cannot be cast to java.lang.Comparable 告诉你的你的Tree类没有实现java.lang.Comparable 在实现接口中增加该接口就行了
呵呵挺不错的啊
答:1.所谓的指针,就是java中的对象的引用。比如String s;这个s就是指针。 2.所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就...详情>>
答:google "java 缓冲池"详情>>
答:百度里搜张孝祥 非常好的视频教程详情>>