微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > J2SE >

我的map问题,请教!

时间:2014-04-14 22:09  浏览:努力统计中...
假定我有一个方法这么写的 publicclassTargetStorage{ privatestaticMapString,MapString,ListObjectrecordClassInfo; /*** *将一个类的方法按照seq拆分,并存储在recordClassInfo中 */ publicstaticTMapString,ListObjectstora

假定我有一个方法这么写的
public class TargetStorage{
private static Map<String , Map<String,List<Object>>> recordClassInfo ;
    /***
     * 将一个类的方法按照seq拆分,并存储在recordClassInfo中
     */
public static <T> Map<String,List<Object>>  storageMethodName(Class<T> tClass , String seq){
Class<T> clz = tClass ;
Method[] methods = clz.getDeclaredMethods() ;
Map<String,List<Object>> record = new HashMap<String, List<Object>>();
for(Method method : methods){
String methodName = method.getName();
String[] info_forMethodName = methodName.split(seq);
ArrayList<Object> infoList  = new ArrayList<Object>();
for(String infoPiece : info_forMethodName){
infoList.add(infoPiece);
}
record.put(methodName, infoList);//填充record!
}
recordClassInfo.put(tClass.getName()+"__Method", record);//报错的位置
return recordClassInfo.get(tClass.getName()+"__Method") ;
}
}

然后我写了一个A类调用以上函数
public class A {
private final static Map<String,List<Object>> checkManager ;//检测管理器,存放程序规定的按键类型
static{
checkManager = TargetStorage.storageMethodName(A.class,  "_");
}
public void Ctrl_W(){
}
public void Ctrl_Q(){
}
public static void main(String[] args) {
A a ;
}
}

报错!
报错如下:
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
at test.TargetStorage.storageMethodName(TargetStorage.java:27)
at test.A.<clinit>(A.java:9)

我自己思考了好久拿不下,特请教CSDN的各位,请教!


recordClassInfo这个map在哪初始化的?

你的存储器(Map<String , Map<String,List<Object>>> recordClassInfo)没有初始化,如何存放东西?

支持楼上两位。

recordClassInfo 这个map没有初始化,我还研究你逻辑半天

这句

private static Map<String , Map<String,List<Object>>> recordClassInfo ;


改为
private static Map<String , Map<String,List<Object>>> recordClassInfo=new HashMap<String , Map<String,List<Object>>>() ;




哈哈 ... 真不好意思,仁兄!



soga ......
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------