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,这是为什么啊? 展开
求大侠指点~
main方法在两个类中
一个main里面是put(key,value),同时可以get(key)取出value;
另一个main里面只有get(key),取出的却是null,这是为什么啊? 展开
展开全部
我猜想你的程序大概是这么写的
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方法根本没有执行过
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方法根本没有执行过
展开全部
你两个类main方法的类。
map是怎么定义的,贴出来看一下呗。
有两个可能。
1.你这两个map不是同一个实例,所以取不到。
2.你第一个main已经结束了。在内存中根本就没这个map了,所以你取不到。
主要还是把代码贴出来看看,你这样说很难知道错误在那,这样的问题,运行一下能好很多。
map是怎么定义的,贴出来看一下呗。
有两个可能。
1.你这两个map不是同一个实例,所以取不到。
2.你第一个main已经结束了。在内存中根本就没这个map了,所以你取不到。
主要还是把代码贴出来看看,你这样说很难知道错误在那,这样的问题,运行一下能好很多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把那个map定义为static就可以了,只要是在同一个虚拟机内都行的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说的对,一个java程序只能有一个main方法 ,你的要求是在一个程序里,得到另一个程序的数据,这是不可以的,因为这是不安全的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把 map 定义成静态的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。。找到你了,楼下的兄弟。这回答都不靠谱啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询