java类型转换的问题

sunner008 2012-12-13 04:22:14
import java.util.HashMap;
import java.util.StringTokenizer;

public class HashMapSample {
HashMap<String, String[]> dict;
public HashMapSample() {
dict = new HashMap<String, String[]>();
}
public void putIntoDict( String key, String info ) {
StringTokenizer st = new StringTokenizer(info, "\n");
int length = st.countTokens();
String [] result = new String[length];
for (int i = 0; i < length; i++) {
result[i] = st.nextToken();
}

dict.put( key, result );
}
public void printWord( Object key ) {
System.out.println( key + ":" );
for( int j = 0; j < ( (String [])(dict.get(key)).length ); j++ ) {//这一行类型转换有错误,求助高手帮助。
System.out.println( ((String [])dict.get(key))[j] );
}
}
public void printDict() {
Object [] keys = dict.keySet().toArray();
for( int i = 0; i < keys.length; i++ ) {
printWord( keys[i] );
}
}
public static void main(String[] args) {
HashMapSample map = new HashMapSample();

String str = "adj : appearing earlier in the same text; \"flaws in the above interpretation\"\n" +
"adv 1: at an earlier place; \"see above\"\n"+
"2: in or to a place that is higher";

map.putIntoDict( "above", str );
map.printDict();
return;
}
}
...全文
145 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
suciver 2012-12-14
  • 打赏
  • 举报
回复
引用 4 楼 nmyangym 的回复:
楼主既然使用了泛型,没必要再强转了. for( int j = 0; j < dict.get(key).length ; j++ ) ////这一行类型转换有错误,求助高手帮助。dict.get(key)本身就是String[].不需要强转了。 { Sy……
使用了泛型就是告诉了编译器,哥们我这个key所对应的value是个String[]编译器在编译的时候就当成是一个String[]了。无需强转
小猴168 2012-12-13
  • 打赏
  • 举报
回复
4楼正解,dict.get(key)就是一个数组类型不用转型了。
yongger520 2012-12-13
  • 打赏
  • 举报
回复
引用 4 楼 nmyangym 的回复:
楼主既然使用了泛型,没必要再强转了. Java code ? 12345 for( int j = 0; j < dict.get(key).length ; j++ ) ////这一行类型转换有错误,求助高手帮助。dict.get(key)本身就是String[].不需要强转了。 { Sy……
正解! 使用了泛型 不用再转型
nmyangym 2012-12-13
  • 打赏
  • 举报
回复
楼主既然使用了泛型,没必要再强转了.

        for( int j = 0; j < dict.get(key).length ; j++ )	////这一行类型转换有错误,求助高手帮助。dict.get(key)本身就是String[].不需要强转了。
       	{
                System.out.println(dict.get(key)[j] );
        }
赏金--猎人 2012-12-13
  • 打赏
  • 举报
回复
( (String [])(dict.get(key))).length;
赏金--猎人 2012-12-13
  • 打赏
  • 举报
回复
把length后面的 ) 拿到 . 的前面
brightyq 2012-12-13
  • 打赏
  • 举报
回复
j < ((String [])dict.get(key)).length;

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧