Java 在重载版本内调用构造函数

Java 在重载版本内调用构造函数,java,constructor,overloading,Java,Constructor,Overloading,我的课程如下所示 public class Film { public String filmName; public String filmImage; public String imdbRating; public String description; public Film(){ super(); } public void Film(String filmName,String filmIma

我的课程如下所示

public class Film {
    public String   filmName;
    public String   filmImage;
    public String   imdbRating;
    public String   description;

    public Film(){
        super();
    }

    public void Film(String filmName,String filmImage,String imdbRating){
        this.filmName=filmName;
        this.filmImage=filmImage;
        this.imdbRating=imdbRating;
    }


    public Film(String filmName,String filmImage,String imdbRating,String description){
        this.description=description;
        //I want call the other one, because I don't want to repeat         
        this.Film(filmName,filmImage,imdbRating);

    }

}
请注意字符串的第二个定义,字符串,字符串,字符串。为什么我不能在第二个构造函数中调用FilmString,String,String


有没有办法做到这一点?

你可以用这个a,b,c来调用其他构造函数来表示字符串a,b,c。您试图使用此.Film来调用它,这是不正确的语法。

您可以将其称为

this(filmName,filmImage,imdbRating)
但它应该是构造函数中的第一个语句

公共无效电影不是一个构造器定义,而是一种方法。清除空隙 你可以用这个调用构造函数。。。这个调用应该是构造函数的第一行
应该按照这个顺序,那么您只能在更通用的版本中实现构造函数

    public Film(){
        this(null,null,null,null);
    }

    public Film(String filmName,String filmImage,String imdbRating){
        this(filmName,filmImage,imdbRating,null);
    }


    public Film(String filmName,String filmImage,String imdbRating,String description){
        this.filmName=filmName;
        this.filmImage=filmImage;
        this.imdbRating=imdbRating; 
        this.description=description;
    }
此影片名称、影片图像、imdbRating

它应该是构造函数中的第一个语句