yycGIS

我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容。 我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系。

Less is more, more is different!

导航

[unchecked] 对作 为原始类型Hashtable的成员的put(K,V)的调用未经过检查。。。

问题:

C:\Users\Administrator\Desktop\java\SoundApplet.java:212: 警告: [unchecked] 对作
为原始类型Hashtable的成员的put(K,V)的调用未经过检查
put(audioFileName,clip);
^
其中, K,V是类型变量:
K扩展已在类 Hashtable中声明的Object
V扩展已在类 Hashtable中声明的Object
1 个警告

代码:

 1 class SoundTable extends java.util.Hashtable{
 2     public SoundTable(int initialCapacity){
 3         super(initialCapacity);
 4     }
 5     public AudioClip getClip(String audioFileName){
 6         return (AudioClip)get(audioFileName);
 7     }
 8     public void putClip(AudioClip clip,String audioFileName){
 9         put(audioFileName,clip);
10     }
11 }

原因:

因为用的是Java SE 7 吧。
在之前的SE中,Hashtable是javax.swing.Hashtable。在SE7中声明为泛型了,javax.swing.Hashtable<K,V>。
因此你需要在实例化它时指明传入指定参数类型,不然就报类型不安全的warning了。
class SoundTable extends java.util.Hashtable改为:class SoundTable extends java.util.Hashtable<String,AudioClip>就OK了。

 

posted on 2014-03-24 14:30  yycGIS  阅读(2566)  评论(0编辑  收藏  举报