Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的Comparator类中出现了奇怪的错误,eclipse将其称为语法,但语法似乎正确_Java_Comparator - Fatal编程技术网

Java 我的Comparator类中出现了奇怪的错误,eclipse将其称为语法,但语法似乎正确

Java 我的Comparator类中出现了奇怪的错误,eclipse将其称为语法,但语法似乎正确,java,comparator,Java,Comparator,我在comparator类中遇到了一个奇怪的语法错误,它将加载歌曲名称并按字典顺序对它们进行排序。语法似乎是正确的,但我不确定发生了什么,因为Eclipse给了我这个错误: 这条线上有多个标记 令牌“”上出现语法错误,应为“” 令牌上出现语法错误,{应为 语法错误,插入}以完成块 语法错误,插入;完成 类主体声明 令牌“”上出现语法错误,应为“” 语法错误,插入;完成类主体声明的步骤 语法错误,插入}以完成块 断点:SongComparator 我还没有尝试过解决这个问题,我真的不知道从哪里开始

我在comparator类中遇到了一个奇怪的语法错误,它将加载歌曲名称并按字典顺序对它们进行排序。语法似乎是正确的,但我不确定发生了什么,因为Eclipse给了我这个错误:

这条线上有多个标记

令牌“”上出现语法错误,应为“” 令牌上出现语法错误,{应为 语法错误,插入}以完成块 语法错误,插入;完成 类主体声明 令牌“”上出现语法错误,应为“” 语法错误,插入;完成类主体声明的步骤 语法错误,插入}以完成块 断点:SongComparator 我还没有尝试过解决这个问题,我真的不知道从哪里开始。来到这里,希望能对这个问题有所了解

这是我的密码:

package cmsc256;

import bridges.data_src_dependent.Song;
import bridges.connect.DataFormatter;
import java.util.Comparator;

public class SongComparator implements Comparator<Song>(Song o1, Song o2) {

    public int compare(Song o1, Song o2) {

        Song placeHolder;

        if (o1.compareTo(o2) > 1) {
            //do nothing
        }
        else if(o1.compareTo(o2) == 0) {
            //do nothing
        }
        else if (o1.compareTo(o2) < 1) {
            o1 = placeHolder;
            o1 = o2;
            o2 = placeHolder;
        }
    }

    public String getSongsByArtist(String artist) {
        return "";
    }

}

该错误发生在类声明中,特别是在参数中。括号、开括号和分隔参数的逗号都有下划线。

您至少有三个问题:

在比较方法中没有返回任何内容 公共类SongComparator实现ComparatorSong o1,Song o2{应该只是公共类SongComparator实现Comparator{ 您需要先初始化占位符,然后才能将其分配给另一个变量 潜在的:如果Song类通常通过实现Comparable接口来实现compareTo,那么您只能在Song上调用compareTo。但是您可能不需要编写自定义的SongComparator。 以下是一些入门的基本代码:

class SongComparator implements Comparator<Song> {

    public int compare(Song o1, Song o2) {
        // Implement your comparison logic here
        return o1.toString().compareTo(o2.toString());
    }

    public String getSongsByArtist(String artist) {
        return "";
    }
}

你没有返回比较法中的任何内容这里需要什么占位符。你想在这里实现什么排序?我最终将通过交换arrayList上的每首歌曲按字母顺序进行排序。这门课是为了一个学校项目,需要使用,但不必这样做。好的,这大部分是当我真的完成了这个方法时就解决了。谢谢你的帮助:我对这个很陌生。