0

我是 Java 新手,我必须创建一个值对象(在 Java 中可能称为映射对象),但我的代码似乎不起作用,这是值对象:

package ....;

public class User {
    private int id;    
    private int uid;    
    private String name;

    public User()
    {
        // do something here
    }
}

我像这样分配一个新的值对象:

public boolean some_function() 
{               
    User u = new User();

    return true; // got a breakpoint here
}

因此,如果我注释掉“用户 u = new User();” 我会去断点,但如果我保持它像上面一样,它将停止运行。

附带说明一下,我将这两个文件保存在同一个文件夹中,因此 eclipse 不会导入该文件,这是正确的还是应该导入它?

编辑:

过了一段时间,我发现我必须手动导入文件,我以为我试过了,但显然我没有。

4

4 回答 4

1

丹尼斯,如果您发布的代码正是您正在运行的代码,那么这没有任何意义——“用户 u = new User();” call 会毫无问题地返回一个新的 User 对象,因为你的构造函数是空的。

为了向自己展示这一点,请将您的构造函数更改为:

public User() {
  System.out.println("I'm inside the User constructor!");
}

并再次调用您的 some_function() 函数。您应该看到该行打印到您的控制台。

鉴于您报告的内容和显示的代码,我怀疑包含 some_function() 的类没有“看到” User 类——您正在导入其他一些 User 类,而不是您创建的类。这两个类——用户类和包含 some_function() 的类——在同一个包中吗?如果不是,那么包含 some_function() 的类顶部的哪个 import 语句正在处理 User 类的导入?

于 2009-11-23T15:42:06.073 回答
0

确定您的 User() 构造函数中没有无限循环吗?

于 2009-11-23T15:31:24.003 回答
0

将一些代码放入构造函数中,例如

id = 99;

在那里设置一个断点。

我不明白你关于导入 Eclipse 的意思——我的所有代码都在 Eclipse 中——但是我怀疑你的应用程序没有正确地看到 User 类。也许您甚至会遇到编译错误。在 Eclipse 中创建您的包和类,让它为您整理目录。

向我们展示整个应用程序类,包括 User 的导入。

于 2009-11-23T15:41:34.513 回答
0

设置断点User u = new User();并进入构造函数,看看它在做什么。

于 2009-11-23T15:41:46.353 回答