Java 用另一个类成员初始化一个类成员

Java 用另一个类成员初始化一个类成员,java,initialization,default,Java,Initialization,Default,我是否可以在Project中初始化isActive,如下所示,以便Project的标志由Artist的标志初始化 @Entity @Table(name = "project") public class Project implements java.io.Serializable{ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "artist_id") private Artist artist;

我是否可以在
Project
中初始化
isActive
,如下所示,以便
Project
的标志由
Artist
的标志初始化

@Entity
@Table(name = "project")
public class Project implements java.io.Serializable{

     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "artist_id")
     private Artist artist;

     @Basic
     @Column(name = "is_active",nullable=false)
     private Boolean isActive = false;
}
Project
中定义成员的顺序是否会导致
isActive
始终为false?

该声明:

private Boolean isActive = ((getArtist()!=null)? getArtist().getIsActive(): false);
isActive将始终为false,因为艺术家和isActive都将在项目的默认构造函数之前初始化。所以艺术家被初始化为null,然后isActive被初始化为false(因为getArtist()为null),然后项目的默认构造函数运行(但构造函数不执行任何操作),所以isActive总是false

private Boolean isActive = ((getArtist()!=null)? getArtist().getIsActive(): false);
private Boolean isActive = ((getArtist()!=null)? getArtist().getIsActive(): false);