我必须做一个练习,在那里我必须编写一个orderQuestionsByLength()方法,它应该根据问题的长度(降序)对问题进行排序

以下代码可以工作(但不是按降序排序):

`public void orderQuestionsByLength(){
        Collections.sort(questions,Comparator.comparing(question -> question.getText().length())); 
        for (Question question : questions){                                                       
            System.out.println(question);
        }
    }`

我一添加.reverted(),我的IDE就抛出错误Cannot resolve method 'getText' in 'Object',即使我有一个getText()方法并且在添加.reverted()之前它起作用了

它让我抓狂,BC我不知道如何解决这个问题,gpt说我的代码是正确的(不是说我应该依赖gpt,但我有另一个方法,我可以对整数进行降序排序,在那里我使用了Reverted(),没有任何问题

推荐答案

有时会发生这种情况,因为当lambda参数与.reverted()链接时,比较方法不能正确地推断lambda参数的类型.

要解决这个问题,可以提供explicit type information in the lambda个表达式.下面是用(String question) -> …修改orderQuestionsByLength方法的方法.

public void orderQuestionsByLength() {
    Collections.sort(questions, Comparator.comparing((Question question) -> question.getText().length()).reversed()); 
    for (Question question : questions) {                                                       
        System.out.println(question);
    }
}

Java相关问答推荐

Mat. n_Delete()和Mat. n_release的区别

工件部署期间出错[Tomcat 8.5.45]

Junit with Mockito for java

有没有一种方法使保持活动设置专用于java.net.http.HttpClient的一个实例

如何以干净的方式访问深度嵌套的对象S属性?

当我已经安装了其他版本的Java时,如何在Mac OSX 14.3.1上安装Java 6?

我不能再在Android Studio Hedgehog上用Java语言创建新项目了吗?

如何使用Jackson将XML元素与值和属性一起封装

Docker不支持弹性APM服务器

Java连接池无法正常工作

如何在JavaFX中处理多个按钮

Java SSLKeyManager出厂密码

在Ubuntu 23.10上使用mp3创建JavaFX MediaPlayer时出错

如何读取3个CSV文件并在控制台中按顺序显示?(Java)

如何在运行docker的应用程序中获取指定的配置文件

协同 routine 似乎并不比JVM线程占用更少的资源

将BlockingQueue+守护程序线程替换为执行器

如何以事务方式向ibmmq发送消息

如何正确使用java.time类?

ExecutorService:如果我向Executor提交了太多任务,会发生什么?