Java:找不到符号(构造函数)

标签 java constructor compiler-errors

新手在这里做Java作业。我有一个名为 Album 的类,其中包含以下构造函数:

public class Album {

    private String title;
    private String artist;
    private String genre;
    private Song favoriteTrack;
    private int trackNumber;
    private static int numAlbums;

    //Constructors
    public Album(String title, Song favoriteTrack, int trackNumber) {
        this.title = title;
        this.favoriteTrack = favoriteTrack;
        this.trackNumber = trackNumber;
        artist = favoriteTrack.getArtist();
        genre = favoriteTrack.getGenre();
        numAlbums++;
    }

    public Album(String title, Song favoriteTrack) {
        this(title, favoriteTrack, 1);
    }
...}

然后我有一个第二类 MusicCollection,它在其主要方法中实例化了专辑类三次......

public static void main (String[] args) {...

    Album album1 = new Album("Debut", "Venus as a Boy", 3);
    Album album2 = new Album("Homework", "Around the World", 7);
    Album album3 = new Album("Ghost in the Machine", "Invisible Sun", 3);
    ...}

但是,当我尝试编译 MusicCollection.java 时,出现错误:

cannot find symbol
symbol : constructor Album(java.lang.String,java.lang.String,int)
location : class Album

每次我尝试调用构造函数时。 类Album 和MusicCollection 位于同一目录中,并且Album.java 可以编译。 我想我正在做一些愚蠢的事情,但我无法弄清楚这一点。 任何帮助将不胜感激!

最佳答案

您定义的构造函数的第二个参数是 Song,而不是 String,但在您的 main 中,您尝试使用 String 实例化它> 作为第二个参数。

关于Java:找不到符号(构造函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321547/

相关文章:

使用 XML 请求 URL 的 Java 正则表达式

javascript构造函数参数太多

c# - 从参数化构造函数调用默认构造函数

java - 如何在 Orientdb 中找到短路径(边而不是顶点)

java - 设置广播方法

java - 如何在没有构造函数的情况下初始化类?

c++ - 我如何找到模板函数返回的类型

ios - iOS中VLC工程编译报错

c++ - Using Declaration 和 Forward Declaration 之间的冲突

java - 添加 "spring-security-web"后导入 org.springframework.web.bind.annotation.RestController 无法解决错误