程序代码如下:
import java.util.HashMap;
import java.util.Map;
public class WordConstants {
private static Map typeNameValue=new HashMap();
static{
[color=red]typeNameValue.put("a", 1);
typeNameValue.put("an", 2);
typeNameValue.put("i", 3);
typeNameValue.put("j", 4);
typeNameValue.put("l", 5);
typeNameValue.put("Ng", 6);
typeNameValue.put("n", 7);
typeNameValue.put("nr", 8);
typeNameValue.put("ns", 9);
typeNameValue.put("nt", 10);
typeNameValue.put("nz", 11);
typeNameValue.put("v", 12);
typeNameValue.put("vm", 13);[/color] }
public static int getTypeByName(String _sName){
[color=blue]return typeNameValue.get(_sName);[/color] }
}
红色部分提示“The method put(String,Integer) in the type Map(String,Integer) is not applicable for the arguments(String,int)”
蓝色部分提示“Tye mismatch: cannot convert from Integer to int”
上段代码在命令行环境下运行却可顺利编译
在同样的MyEclipse环境下,不同的工程中,另一段相似代码却没有提示出错信息。相似代码如下:
package com.pureinfo.segword;
import java.util.HashMap;
import java.util.Map;
public class WordConstants {
/************************************************************/
// 常量定义部分 //
/************************************************************/
// public static int HL_CAL_OPT_KEYWORD = 0x1; //计算关键词附加标识
// public static int HL_CAL_OPT_FINGER = 0x2; //计算文章语义指纹标识
// public static int HL_CAL_OPT_POS = 0x4;//计算词性标识
// public static int HL_CAL_OPT_SEARCH = 0x8;//输出面向检索的分词结果
/************************************************************/
// 词性定义部分 //
/************************************************************/
public static final int NATURE_D_A = 0x40000000; // 形容词 形语素
public static final int NATURE_D_B = 0x20000000; // 区别词 区别语素
public static final int NATURE_D_C = 0x10000000; // 连词 连语素
public static final int NATURE_D_D = 0x08000000; // 副词 副语素
public static final int NATURE_D_E = 0x04000000; // 叹词 叹语素
public static final int NATURE_D_F = 0x02000000; // 方位词 方位语素
public static final int NATURE_D_I = 0x01000000; // 成语
public static final int NATURE_D_L = 0x00800000; // 习语
public static final int NATURE_A_M = 0x00400000; // 数词 数语素
public static final int NATURE_D_MQ = 0x00200000; // 数量词
public static final int NATURE_D_N = 0x00100000; // 名词 名语素
public static final int NATURE_D_O = 0x00080000; // 拟声词
public static final int NATURE_D_P = 0x00040000; // 介词
public static final int NATURE_A_Q = 0x00020000; // 量词 量语素
public static final int NATURE_D_R = 0x00010000; // 代词 代语素
public static final int NATURE_D_S = 0x00008000; // 处所词
public static final int NATURE_D_T = 0x00004000; // 时间词
public static final int NATURE_D_U = 0x00002000; // 助词 助语素
public static final int NATURE_D_V = 0x00001000; // 动词 动语素
public static final int NATURE_D_W = 0x00000800; // 标点符号
public static final int NATURE_D_X = 0x00000400; // 非语素字
public static final int NATURE_D_Y = 0x00000200; // 语气词 语气语素
public static final int NATURE_D_Z = 0x00000100; // 状态词
public static final int NATURE_A_NR = 0x00000080; // 人名
public static final int NATURE_A_NS = 0x00000040; // 地名
public static final int NATURE_A_NT = 0x00000020; // 机构团体
public static final int NATURE_A_NX = 0x00000010; // 外文字符
public static final int NATURE_A_NZ = 0x00000008; // 其他专名
public static final int NATURE_D_H = 0x00000004; // 前接成分
public static final int NATURE_D_K = 0x00000002; // 后接成分
public static final int NATURE_D_UN = 0x00000001; // 未知
private static Map<String, Integer> typeNameValue = new HashMap<String, Integer>();
static {
typeNameValue.put("a", NATURE_D_A);
typeNameValue.put("b", NATURE_D_B);
typeNameValue.put("c", NATURE_D_C);
typeNameValue.put("d", NATURE_D_D);
typeNameValue.put("e", NATURE_D_E);
typeNameValue.put("f", NATURE_D_F);
typeNameValue.put("i", NATURE_D_I);
typeNameValue.put("l", NATURE_D_L);
typeNameValue.put("m", NATURE_A_M);
typeNameValue.put("mq", NATURE_D_MQ);
typeNameValue.put("n", NATURE_D_N);
typeNameValue.put("o", NATURE_D_O);
typeNameValue.put("p", NATURE_D_P);
typeNameValue.put("q", NATURE_A_Q);
typeNameValue.put("r", NATURE_D_R);
typeNameValue.put("s", NATURE_D_S);
typeNameValue.put("t", NATURE_D_T);
typeNameValue.put("u", NATURE_D_U);
typeNameValue.put("v", NATURE_D_V);
typeNameValue.put("w", NATURE_D_W);
typeNameValue.put("x", NATURE_D_X);
typeNameValue.put("y", NATURE_D_Y);
typeNameValue.put("z", NATURE_D_Z);
typeNameValue.put("nr", NATURE_A_NR);
typeNameValue.put("ns", NATURE_A_NS);
typeNameValue.put("nt", NATURE_A_NT);
typeNameValue.put("nx", NATURE_A_NX);
typeNameValue.put("nz", NATURE_A_NZ);
typeNameValue.put("h", NATURE_D_H);
typeNameValue.put("k", NATURE_D_K);
typeNameValue.put("un", NATURE_D_UN);
}
public static int getTypeByName(String _sName) {
return typeNameValue.get(_sName);
}
}
迫切希望各位能帮忙解答,谢谢~