java - Sortbyname 无法解析为 java 中的类型

标签 java

错误:

Sortbyname cannot be resolved to a type in java

我正在使用 Comparator 接口(interface)方法,对 java 中使用的板球运动员的姓名和分数进行排序。

我是java初学者

package javapractice2;
import java.util.*;
import java.io.*;
public class Player {
    String player_name;
    int player_score;

    public Player(String member, int score) {
        this.player_name = member;
        this.player_score = score;
    }
}

/比较器/

package javapractice2;
import java.util.*;
public class NameComparator {

    public class Sortbyname implements Comparator<Player>{

        public int compare(Player a, Player b){

            return a.player_name.compareTo(b.player_name);

        }
    }

}

/java中的主要方法/

package javapractice2;

import java.util.ArrayList;

import java.util.Collections;

public class Mainclass {

    public static void main(String[] args) {         

        ArrayList<Player> ply = new ArrayList<Player>();

        ply.add(new Player ("kuldeep", 85));
        ply.add(new Player ("jadeja", 75));
        ply.add(new Player ("dohni", 48));
        ply.add(new Player ("kozhi", 78));
        ply.add(new Player ("raina", 48));
        ply.add(new Player ("sachin", 85));
        ply.add(new Player ("yuvaraj", 100));
        ply.add(new Player ("Ajinkya", 85));
        ply.add(new Player ("baji", 75));
        ply.add(new Player ("hardik", 55));

        Collections.sort(ply, new Sortbyname());

        for(int i=0; i<ply.size(); i++){
            System.out.println(ply.get(i));
        }


    }
}

最佳答案

代码中的所有内容都很好,除了以下内部类样式代码:

public class NameComparator {

public class Sortbyname implements Comparator<Player>{

因此将此类更改如下:

按名称排序.java

package javapractice2;

import java.util.Comparator;

public class Sortbyname implements Comparator<Player> {

    public int compare(Player a, Player b) {
        return a.player_name.compareTo(b.player_name);
    }
}

还在 Player.java 中添加一个 toString() 方法以获得更好的输出打印:

package javapractice2;

public class Player {
    String player_name;
    int player_score;

    public Player(String member, int score) {
        this.player_name = member;
        this.player_score = score;
    }

    @Override
    public String toString() {
        return "Player [player_name=" + player_name + ", player_score=" + player_score + "]";
    }

}

否则,如果您想保留代码,请在 Mainclass.java 中更新以下内容:

Collections.sort(ply, new NameComparator().new Sortbyname());

关于java - Sortbyname 无法解析为 java 中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49790874/

相关文章:

java - 使用 Java API 在 ElasticSearch 中使用 JaroWinkler 对查询进行评分

java - 如何在android studio中实用地停止闹钟铃声

java - 简单对象在 Spring + Hibernate 中持久化

java - 嵌入实体的自动ID

java - 密码广播接收器根本不工作

java - 进程 getInputStream() 永远不会结束

java - 我们如何管理 SMS,哪种语言是最好的处理方式?

java - 在 Apache 中为 1 个 Java 文件创建两个类文件

java - 使用反射根据泛型类的getClass创建实例

java - 由于React无法在Google Pixel 8.0中创建 Root View ,因此无法启动日志框