注册 登录
编程论坛 J2EE论坛

请问程序哪里出错了?

cheshou 发布于 2009-10-27 17:34, 896 次点击
public class Lili {
    int id;
    String name;
    public Lili(int id,String name){
        this.id=id;
        this.name=name;
    }
   
    static List<Lili> list=new ArrayList<Lili>();
    Lili l_1=new Lili(0,"name1");
    Lili l_2=new Lili(1,"name2");
    {
    list.add(l_1);
    list.add(l_2);
    }
    public static Lili getSkillById(int id){
        for(Lili h:list){
            if(h.id==id)
                return h;}
        return null;
    }
  
    public static void main(String[] args){
        Lili skill=getSkillById(0);
        int i=skill.id;
        System.out.print(i);
        
        
    }
    }
6 回复
#2
windizual2009-10-28 15:52
。。。。。。1.没插入util包
            2.空指针错误,你自己看一下你那个静态方法返回了个什么东西
#3
lampeter1232009-10-28 16:18
这个问题太复杂了,好像不能这样创建实例

[ 本帖最后由 lampeter123 于 2009-10-28 16:35 编辑 ]
#4
cheshou2009-10-28 18:24
是啊,我也搞不清楚,我就是想把所有的项添加到一个List里面去,都没成功,不知道该怎么处理
#5
acera0022009-10-30 00:29
lz你这代码是你自己想出来的吗?
刚才运行了一下,中间的部分
    {
    list.add(l_1);
    list.add(l_2);
    }
没有被执行,所以Lili类的属性list为null。

大改了一下,反正能运行了,但不知道合不合lz的初衷

package test;
 
import java.util.ArrayList;
import java.util.List;
 
public class Lili {
    class idName {
        int id;
        String name;
    }
        static List<idName> list=new ArrayList<idName>();
         
        public Lili(){
            idName idname= new idName();
            idname.id=0;
            idname.name="name1";
            list.add(idname);
 
            idname= new idName();
            idname.id=1;
            idname.name="name2";
            list.add(idname);
        }
         
        public idName getSkillById(int id){
            for(idName h:list){
                if(h.id==id)
                    return h;}
            return null;
        }
      
        public static void main(String[] args){
            Lili lili = new Lili();
            idName skill=lili.getSkillById(0);
            String i=skill.name;
            System.out.print(i);
            
        }
        }
#6
cheshou2009-10-30 15:48
谢谢楼上的解答
#7
tcmlcool2009-11-05 22:09
static List<Lili> list=new ArrayList<Lili>();
    Lili l_1=new Lili(0,"name1");
    Lili l_2=new Lili(0,"name1");
    {
    list.add(l_1);
    list.add(l_2);
    }
其中  Lili l_1=new Lili(0,"name1");
    Lili l_2=new Lili(1,"name2");
 只是给LILI 1_1 和 LILI 1_2 开辟了一个新行的空间Lili(0,"name1");Lili(1,"name2"); 空间为空 但是并没有赋值 所以返回的是NULL  然后重新赋值给Lili l_1和Lili l_2 问题可能就解决了 你再试试 我没时间现在 只是看了下
1