java问题 两个main方法读取同一个map

我用一个main方法在内存了一个map表,并且存入了一对值,如何用另外一个main方法来读取这个map中的value?求大侠指点~main方法在两个类中一个main里面是... 我用一个main方法在内存了一个map表,并且存入了一对值,如何用另外一个main方法来读取这个map中的value?
求大侠指点~
main方法在两个类中
一个main里面是put(key,value),同时可以get(key)取出value;
另一个main里面只有get(key),取出的却是null,这是为什么啊?
展开
 我来答
234369425
2011-12-29 · TA获得超过814个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:187万
展开全部
我猜想你的程序大概是这么写的
Class A{
public static Map m = new HashMap();
public static void main(String[] args){
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}

Class B{
public static void main(String[] args){
A.m.get(key)
}
}

这么做肯定是不行的
每个java程序只能有一个main方法
也就是你在执行B类中的main方法时
A类的main方法是从来没有被调用过的
其实你可以改造下A类中的初始化方法
Class A{
public static Map m = new HashMap();
static {
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}

这样在B类中就可以使用了
想知道为什么查询下“静态块”
另、如果你A类中Map不是初始化时就持有
而是写成下面
Class A{
public static Map m = null;
public static void main(String[] args){
m = new HashMap();
m.put(key,value);
m.put(key,value);
m.put(key,value);
}
}
这样你才会发现在B类中调用时报了一个空指针异常
你也就会发现其实A类中的main方法根本没有执行过
百度网友845f74e61
2011-12-29 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1619万
展开全部
你两个类main方法的类。

map是怎么定义的,贴出来看一下呗。
有两个可能。
1.你这两个map不是同一个实例,所以取不到。
2.你第一个main已经结束了。在内存中根本就没这个map了,所以你取不到。

主要还是把代码贴出来看看,你这样说很难知道错误在那,这样的问题,运行一下能好很多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2011-12-29 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
把那个map定义为static就可以了,只要是在同一个虚拟机内都行的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
国侯D
2011-12-29 · TA获得超过118个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:129万
展开全部
楼上说的对,一个java程序只能有一个main方法 ,你的要求是在一个程序里,得到另一个程序的数据,这是不可以的,因为这是不安全的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangmin215
2011-12-29 · TA获得超过234个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:139万
展开全部
你把 map 定义成静态的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友caa17ff
2011-12-29
知道答主
回答量:32
采纳率:0%
帮助的人:22.3万
展开全部
。。找到你了,楼下的兄弟。这回答都不靠谱啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式