我是 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
}
因此,如果我注释掉“User u = new User();”我将转到断点,但如果我像上面那样保持它,它将停止运行。
顺便说一句,我将这两个文件保存在同一个文件夹中,这样 Eclipse 就不会导入该文件,这是正确的还是我应该导入它?
编辑:
过了一段时间,我发现我必须手动导入文件,我以为我尝试过,但显然我没有。
最佳答案
Dennis,如果您发布的代码正是您正在运行的代码,那么这就没有意义了——“User u = new User();”调用将返回一个新的 User 对象,没有任何问题,因为您的构造函数是空的。
为了向自己演示这一点,请将构造函数更改为:
public User() {
System.out.println("I'm inside the User constructor!");
}
并再次调用您的 some_function() 函数。您应该会看到该行打印到控制台。
鉴于您所报告的内容和所显示的代码,我怀疑包含 some_function() 的类并未“看到” User 类 - 您正在导入其他一些 User 类,而不是该 User 类你创造了。这两个类(User 类和包含 some_function() 的类)是否位于同一个包中?如果不是,包含 some_function() 的类顶部的哪个导入语句正在处理 User 类的导入?
关于java 值对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1783836/