stream不能对有泛型的类做倒叙排序?

public class TempTest {
    public static void main(String[] args) {
        //创建数据,对根据姓名 name 去重
        List<DemoDTO> allList = new ArrayList<>();

        allList.add(new DemoDTO("d1", "10"));
        allList.add(new DemoDTO("d2", "20"));
        allList.add(new DemoDTO("d3", "30"));

        allList.stream().sorted(Comparator.comparing(DemoDTO::getAge).reversed());
    }
}


@Data
class DemoDTO<T> {
    String name;
    String age;
    public DemoDTO(String name, String age) {
        this.name = name;
        this.age = age;
    }
}

 

import lombok.Data;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class TempTest {
    public static void main(String[] args) {
        //创建数据,对根据姓名 name 去重
        List<DemoDTO<Object>> allList = new ArrayList<>();
        allList.add(new DemoDTO<>("d1", "10", null));
        allList.add(new DemoDTO<>("d2", "20", null));
        allList.add(new DemoDTO<>("d3", "30", null));
        System.out.println("前:[" + Arrays.toString(allList.toArray()) + "]");
        allList = allList.stream().sorted(Comparator.comparing(DemoDTO<Object>::getAge).reversed()).collect(Collectors.toList());
        System.out.println("后:[" + Arrays.toString(allList.toArray()) + "]");
    }
}

@Data
class DemoDTO<T> {
    String name;
    String age;
    T generic;

    public DemoDTO(String name, String age, T generic) {
        this.name = name;
        this.age = age;
        this.generic = generic;
    }
}

 

解决方式:添加泛型, 望采纳

 

运行结果:

 

main 是静态方法,你在静态方法中,引用了非静态方法

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y