黑马程序员技术交流社区

标题: 编译失败,找不到原因。 [打印本页]

作者: f78fk    时间: 2014-5-31 19:03
标题: 编译失败,找不到原因。
本帖最后由 f78fk 于 2014-6-4 21:16 编辑

import java.util.*;

class Perrson
{
        private String name;;
        private int age;
        Perrson(String name,int age)
        {
                this.name = name;
                this.age = age;
        }
        public String getName()
        {
                return name;
        }
        public int getAge()
        {
                return age;
        }
}

class ArrayListTest2
{
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        public static void main(String[] args)
        {
                ArrayList al = new ArrayList();
               
                al.add(new Person("李四1",30));
                al.add(new Person("李四2",32));
                al.add(new Person("李四3",33));
                al.add(new Person("李四4",35));

                Iterator it = al.iterator();

                while(it.hasNext())
                {
                        Person p = (Person)it.next();
                        sop(p.getName()+"::"+p.getAge());
                }
        }
}


编译提示:
ArrayListTest2.java:41: 错误: 无法将类 Person中的构造器 Person应用到给定类型;
                al.add(new Person("李四1",30));
                       ^
  需要: 没有参数
  找到: String,int
  原因: 实际参数列表和形式参数列表长度不同


作者: f78fk    时间: 2014-5-31 19:12
希望各位高手能指点下 谢谢
作者: ☆枫の云    时间: 2014-5-31 19:26
类名和构造方法名写错了,类名和构造方法名你写的都是Perrson,而下面传的却是new Person("李四1",30),肯定找不到构造器啦。。。
作者: 沐小北    时间: 2014-5-31 19:28
标题: 複制錯誤
本帖最后由 沐小北 于 2014-5-31 20:18 编辑

複制錯誤
作者: 沐小北    时间: 2014-5-31 19:29
第一段:
package com.itheima少了“com”
作者: fenzheng    时间: 2014-5-31 19:32
把类名写错了,如果你用eclipse的话,尽量自动生成构造方法,这样就不会写错,只要将 调用的类名改成你写的就好了,不报错了看
package com.itheima;
import java.util.*;

class Perrson
{
        private String name;;
        private int age;
        Perrson(String name,int age)
        {
                this.name = name;
                this.age = age;
        }
        public String getName()
        {
                return name;
        }
        public int getAge()
        {
                return age;
        }
}

class ArrayListTest2
{
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        public static void main(String[] args)
        {
                ArrayList al = new ArrayList();
               
                al.add(new Perrson("李四1",30));
                al.add(new Perrson("李四2",32));
                al.add(new Perrson("李四3",33));
                al.add(new Perrson("李四4",35));

                Iterator it = al.iterator();

                while(it.hasNext())
                {
                        Perrson p = (Perrson)it.next();
                        sop(p.getName()+"::"+p.getAge());
                }
        }
}
作者: yinxjfly    时间: 2014-5-31 19:33
大哥,你的person类定义成perrson了!
类名和构造函数名称改一下就OK了!
作者: 茄子    时间: 2014-5-31 19:49
顶楼上!!!
作者: f78fk    时间: 2014-5-31 20:14
☆枫の云 发表于 2014-5-31 19:26
类名和构造方法名写错了,类名和构造方法名你写的都是Perrson,而下面传的却是new Person("李四1",30),肯 ...

都怪我粗心,找了半天没找到,非常感谢!
作者: 沐小北    时间: 2014-5-31 20:16
package com.itheima;

import java.util.*;

class Perrson
{
        private String name;;
        private int age;
        Perrson(String name,int age)
        {
                this.name = name;
                this.age = age;
        }
        public String getName()
        {
                return name;
        }
        public int getAge()
        {
                return age;
        }
}

class ArrayListTest2
{
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        public static void main(String[] args)
        {
                ArrayList al = new ArrayList();
               
                al.add(new Perrson("李四1",30));
                al.add(new Perrson("李四2",32));
                al.add(new Perrson("李四3",33));
                al.add(new Perrson("李四4",35));

                Iterator it = al.iterator();

                while(it.hasNext())
                {
                        Perrson p = (Perrson)it.next();
                        sop(p.getName()+"::"+p.getAge());
                }
        }
}

作者: 沐小北    时间: 2014-5-31 20:17
你可以使用  myeclipse進行編譯!
作者: f78fk    时间: 2014-5-31 20:17
yinxjfly 发表于 2014-5-31 19:33
大哥,你的person类定义成perrson了!
类名和构造函数名称改一下就OK了!

非常感谢,我一直找那个参数列表,明明长度一致为什么提示参数列表不一致,原来是类名写错了 。
作者: GoodBoy123    时间: 2014-5-31 22:01
你的类名写错了,把Person写成Perrson




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2