0

我想知道在创建对象时如何在 java 中执行方法。

例如:

public class Person {
    private String name;
    private int age;
    private Date dateCreated;

    public setName(String name){
    ...
    }
    ... some other methods ...

    public setDateCreated(){
         this.dateCreated = new Date();
}

我真的希望我的 setDateCreated() 方法在创建时在每个对象上执行。

4

4 回答 4

10

只需调用setDateCreated您的对象构造函数:

 public Person(){
     setDateCreated();
 }

如果您不想稍后修改它,您也可以直接在构造函数中执行此操作:

 public Person(){
     this.dateCreated = new Date();
 }
于 2012-04-12T20:00:21.080 回答
2

使用构造函数:

public Person(){
  setDateCreated();
}

还有,public class Person(){应该public class Person{

于 2012-04-12T20:01:23.200 回答
1

当然,您意识到这个类打破了 Java Bean 编码标准。

该标准将期望看到传递给该setDateCreated()方法的 Date 对象:

public void setDateCreated(Date newDate) { 
    this.dateCreated = ((newDate == null) ? new Date() : new Date(newDate.getTime()));
}

一旦添加了 void 返回类型,您就可以按照自己的方式自由地进行操作,但是如果其他希望您符合标准的代码抱怨,请不要感到震惊。

于 2012-04-12T20:03:19.140 回答
-1

我会使用某种面向方面的方法——这样你就可以避免在你的类中使用代码。检查方面 j 或 spring 以进行面向方面的编程。

于 2012-04-12T20:13:16.857 回答