类似这样的,单个变量对比大小。
路过的大佬,求赐教。
用的如下代码实现了,谢谢大家。
public static boolean reflect(List<Test> tests) throws Exception {
Test test01 = tests.get(0);
Test test02 = tests.get(1);
Class cls = test01.getClass();
Field[] fields = cls.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field f = fields[i];
f.setAccessible(true);
System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(test01));
System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(test02));
boolean b = compareData(new BigDecimal(f.get(test01).toString()), new BigDecimal(f.get(test02).toString()));
System.out.println(b);
if (!b){
return b;
}
}
return true;
}
private static boolean compareData(BigDecimal data01,BigDecimal data02){
if (data01.compareTo(data02) == -1){
return false;
}
return true;
}
setA01~setA07是写死的么?还是可以变化的,可以变化的需要用反射
https://blog.csdn.net/weixin_39800144/article/details/79012369
没太理解,是要重写Comparator接口中的compare()方法这种?
你确定你要的是这样吗
感觉怪怪的。不太理解你的意思。
不可以用list取差集这样来判断吗
List reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(toList());
你看看是不是这个意思:
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<User> list1 = new ArrayList();
List<User> list2 = new ArrayList();
// 最好list1和list2的size是相同的,否则不能满足你上面表述的对应相比较
for (int i = 0; i < list1.size() && i < list2.size(); i++) {// 这里限制不要下标越界
User u1 = list1.get(i);// 获取list1的元素
User u2 = list2.get(i);// 获取list2的元素
// TODO 你要做的对比及其他逻辑。。。。。
}
}
}