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);