泛型集合排序,根据实体类对象的某个属性排序

2023-10-31

泛型集合排序,根据实体类对象的某个属性排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;

import sy.model.aite.analysis.SelfTestAnalysis;

/**
 * 泛型集合排序,根据实体类对象的某个属性排序
 * @author admin
 *
 * @param <E>
 */
public class SortList<E> {
	
	public void Sort(List<E> list, final String method, final String sort) {
		Collections.sort(list, new Comparator<Object>() {
			public int compare(Object a, Object b) {
				int ret = 0;
				try {
					Method m1 = ((E) a).getClass().getMethod(method, null);
					Method m2 = ((E) b).getClass().getMethod(method, null);
					if (sort != null && "desc".equals(sort))// 倒序
						ret = m2.invoke(((E) b), null).toString()
								.compareTo(m1.invoke(((E) a), null).toString());
					else
						// 正序
						ret = m1.invoke(((E) a), null).toString()
								.compareTo(m2.invoke(((E) b), null).toString());
				} catch (NoSuchMethodException ne) {
					System.out.println(ne);
				} catch (IllegalAccessException ie) {
					System.out.println(ie);
				} catch (InvocationTargetException it) {
					System.out.println(it);
				}
				return ret;
			}
		});
	}
	
	public static void main(String[] args) {
		List<SelfTestAnalysis> list = new ArrayList<SelfTestAnalysis>();
		SelfTestAnalysis st1 = new SelfTestAnalysis();
		st1.setStatus("OK");
		st1.setPlateNumber("车牌");
		st1.setForSort(2);
		list.add(st1);
		
		SelfTestAnalysis st2 = new SelfTestAnalysis();
		st2.setStatus("NG");
		st1.setPlateNumber("车牌");
		st2.setForSort(3);
		list.add(st2);
		
		SelfTestAnalysis st3 = new SelfTestAnalysis();
		st3.setStatus("OFF");
		st1.setPlateNumber("车牌");
		st3.setForSort(1);
		list.add(st3);
		
		SelfTestAnalysis st4 = new SelfTestAnalysis();
		st4.setStatus("OFF");
		st1.setPlateNumber("车牌");
		st4.setForSort(1);
		list.add(st4);
		
		System.out.println("默认排序");
		for(SelfTestAnalysis test : list){
			System.out.println(test.toString());
		}
		System.out.println();
		
        SortList<SelfTestAnalysis> sort = new SortList<SelfTestAnalysis>();

        System.out.println("getNum的desc排序");
        sort.Sort(list, "getForSort", "desc");
        for(SelfTestAnalysis test : list){
			System.out.println(test.toString());
		}
        
        System.out.println();
        
        System.out.println("getNum的asc排序");
        sort.Sort(list, "getStatus", null);
        for(SelfTestAnalysis test : list){
			System.out.println(test.toString());
		}
	}
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

泛型集合排序,根据实体类对象的某个属性排序 的相关文章

  • HTTP 状态 404 - 请求的资源不可用

    在使用 MyEclipse IDE 中的 Tomcat 服务器和 Struts 2 框架时 我遇到了反复出现的问题 我将我的程序作为服务器应用程序运行 当它运行时 默认的index jsp 文件将成功打开 但应用程序的其他过去都不起作用 当
  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 用 @DataJpaTest 注释的测试不是用 @Autowired 注释的自动装配字段

    我有一个 Spring Boot 应用程序 其中包含 Spring Data Jpa 存储库 我需要围绕这个存储库运行单元 或组件 测试 我对 Spring Data Jpa 没有太多经验 这是我的测试 这很简单 我无法让它通过 impor
  • MP3:一种以毫秒为单位获取任何给定字节位置的位置的方法?

    我创建了一个 servlet 它返回从客户端请求的任何给定字节位置开始的流 来自 MP3 文件 这允许客户端在任何给定字节位置立即开始播放 而无需进行任何本地查找 现在 我有一个滑块可以直观地显示进度 我正在使用当前字节位置来更新滑块 但是
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • 如何将 XMP XML 块序列化为现有的 JPEG 图像?

    我有许多 JPEG 图像 其中包含损坏的 XMP XML 块 我可以轻松修复这些块 但我不确定如何将 固定 数据写回图像文件 我目前正在使用 JAVA 但我愿意接受任何能让这项任务变得容易的事情 这是目标关于 XMP XML 的另一个问题
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • 具有多种值类型的 Java 枚举

    基本上我所做的是为国家编写一个枚举 我希望不仅能够像国家一样访问它们 而且还能够访问它们的缩写以及它们是否是原始殖民地 public enum States MASSACHUSETTS Massachusetts MA true MICHI
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 将 RSA 密钥从 BigIntegers 转换为SubjectPublicKeyInfo 形式

    WARNING 最初的问题是关于 PKCS 1 编码密钥 而问题中的实际示例需要SubjectPublicKeyInfo X 509 编码密钥 我目前正致力于在 java 中从头开始实现 RSA 算法 特别是密钥生成方面 现在我的代码可以给
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • struts 教程或示例

    我正在尝试在 Struts 中制作一个登录页面 这个想法是验证用户是否存在等 然后如果有错误 则返回到登录页面 错误显示为红色 典型的登录或任何表单页面验证 我想知道是否有人知道 Struts 中的错误管理教程 我正在专门寻找有关的教程 或
  • MongoDB Java 驱动程序:MongoCore 驱动程序与 MongoDB 驱动程序与 MongoDB 异步驱动程序

    MongoDB Java 驱动程序有三种不同的驱动程序选项 核心驱动 MongoDB 驱动程序 MongoDB 异步驱动程序 The 驱动程序描述页面 https docs mongodb org ecosystem drivers jav

随机推荐

  • cccccc

    Source code recreated from a class file by IntelliJ IDEA powered by FernFlower decompiler package com gb soa omp ccommon
  • idea找不到版本的可能性总结

    当spring boot starter parent下面的版本报红时并不是这个版本不存在 而是因为idea会默认缓存Maven本地仓库已存在的中的依赖项 只是我们引入的的父依赖版本 本地仓库中不存在 所以就报错了 解决方案就是我们清除一下
  • 【Pytorch with fastai】第 3 章 :数据伦理

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Linux 篇:Linux定时任务

    什么是crond crond是linux用来定期执行命令或指定程序任务的一种服务 安装完操作系统后 默认会启动crond任务调度服务 crond服务会定期检查系统中是否有要执行的任务 如果有要执行的任务便会自动执行该任务 crond定时任务
  • Oracle数据库DBA权限回收操作参考

    1 基本操作指令 查看当前系统 ORACLE SID linux su oracle cat etc oratab orcl oracle app oracle product 11 2 0 dbhome 1 N crm oracle ap
  • 网络层协议介绍

    网络层的功能 1 定义了基于IP协议的逻辑地址 2 链接不同的媒介类型 3 选择数据通过网络的最佳路径 IP数据包格式 数据封装的时候在网络层会封装ip地址的头部 形成ip数据包 IP数据包格式 分为20字节的固定部分 表示每个ip数 据包
  • python压缩文件夹下的文件及子文件夹

    压缩某一文件夹下的所有文件 python import os import zipfile def is child dir dir1 dir2 if dir1 dir2 return True return dir1 startswith
  • stat函数详解

    Linux系统函数之文件系统管理 二 stat函数 作用 获取文件信息 头文件 include
  • 【Matlab】基于SVM支持向量机的时间序列预测(Excel可直接替换数据)

    Matlab 基于SVM支持向量机的时间序列预测 Excel可直接替换数据 1 模型原理 2 文件结构 3 Excel数据 4 分块代码 5 完整代码 6 运行结果 1 模型原理 基于支持向量机 Support Vector Machine
  • HCIPR&S223-V2.5一些总结

    1 下列关于DHCP Server仿冒者攻击说法正确的是 多选 AC A DHCP Server仿冒者攻击通过仿冒DHCP服务器向终端下发错误的IP地址和网络参数 导致用户无法上网 B 华为交换机接口下开启DHCP snooping功能后默
  • elementui的轮播图

    需求是需要把左右切换分页的大小于号放在轮播图外面 涉及到了一些问题 1 实现思路 2 绝对定位垂直居中 3 需要覆盖一些组件里的样式 直接给设置样式无法覆盖 解决1 实现思路 没有找到插件原生的方法 于是看了一遍文章 制作两个div装着图片
  • R语言主成分分析

    head swiss 查看数据 cor swiss 查看相关性矩阵 方阵中绝对值最小的是0 06085861 比0 05大 因此swiss中变量相互之间均有或强或弱的相关关系 这份数据适合做主成份分析 由于变量的量纲不同会使主成份得分系数的
  • LeetCode:动态规划【基础题目求解】

    PS 本文是参考代码随想录做的一些笔记 完整版本请戳链接 非常好的教程 如果某一问题有很多重叠子问题 使用动态规划是最有效的 所以动态规划中每一个状态一定是由上一个状态推导出来的 这一点就区分于贪心 贪心没有状态推导 而是从局部直接选最优
  • 解决vue2.x在ie浏览器打开空白问题

    排查一 先看看项目中是否安装并引入babel polyfill这个东西 Babel是一个广泛使用的转码器 可以将ES6代码转为ES5代码 引入则跳过 vue项目在IE浏览器中显示空白 是因为js文件没有加载 需要引入babel polyfi
  • CSS3-转换之rotate

    在讲解之前 我们先将我们要变换的元素看做一个正方体 为了方便理解 我标注了X Y Z轴以及方向 如下图 1 rotateX angle 定义沿着X轴的3D旋转 如上图 第一张为俯视图 第二张是3D视图 沿X轴顺时针旋转30度 它俯视图的宽度
  • python 实现 短信登录 b站 并打印cookie内容

    前言 本程序是get bili medal list项目 的一个子程序 用于大批量获取用户数据时的cookie替换 使用 项目根目录运行python login get cookie py 根据提示完成短信验证登录 期间需要访问http g
  • 数学建模——微分方程介绍

    一 基础知识 1 一阶微分方程 称为一阶微分方程 y x0 y0为定解条件 其常规求解方法 1 变量分离 再两边积分就可以求出通解 2 一阶线性求解公式 通解公式 有些一阶微分方程需要通过整体代换 比如u x y u xy u x y u
  • 【vue】导航跳转页面空白

    解决 index js里检查代码 component 多加了s const routes path component 这里写成components就会出现错误
  • linux虚拟机长时间没启动,一启动报错,解决办法。

    1 遇到此问题 具体报错信息 另一个程序已锁定文件的一部分 进程无法访问打不开磁盘 C Users let it out Documents Virtual Machines CentOS 64 103 CentOS 64 cl2 vmdk
  • 泛型集合排序,根据实体类对象的某个属性排序

    泛型集合排序 根据实体类对象的某个属性排序 import java util ArrayList import java util Collections import java util Comparator import java ut