问题:
C:UsersAdministratorDesktopjavaSoundApplet.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了。