标题:请问程序哪里出错了?
只看楼主
cheshou
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2009-8-3
结帖率:50%
 问题点数:0 回复次数:6 
请问程序哪里出错了?
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);
        
        
    }
    }
搜索更多相关主题的帖子: public return null 
2009-10-27 17:34
windizual
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:124
专家分:186
注 册:2009-7-1
得分:0 
。。。。。。1.没插入util包
            2.空指针错误,你自己看一下你那个静态方法返回了个什么东西

Java要学的东西好多~~~~~
2009-10-28 15:52
lampeter123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
得分:0 
这个问题太复杂了,好像不能这样创建实例

[ 本帖最后由 lampeter123 于 2009-10-28 16:35 编辑 ]

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-10-28 16:18
cheshou
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2009-8-3
得分:0 
是啊,我也搞不清楚,我就是想把所有的项添加到一个List里面去,都没成功,不知道该怎么处理
2009-10-28 18:24
acera002
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2009-10-29
得分:0 
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);
            
        }
        }
2009-10-30 00:29
cheshou
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2009-8-3
得分:0 
谢谢楼上的解答
2009-10-30 15:48
tcmlcool
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-11-5
得分:0 
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 问题可能就解决了 你再试试 我没时间现在 只是看了下
2009-11-05 22:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-290132-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.813035 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved