spring函数验证不接受数据类型的对象

wfypjpf4  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(326)

我正在做一个函数来验证一个对象是否在一个对象列表中,但是我有一个问题,因为我使用一个类来定义等待对象的属性,所以在ide中似乎可以提供一些帮助来解决这个问题,但是我不想这样做,我的想法是,让一个函数全局化,来验证任何类型的列表,所以这是我的代码,对不起如果不好,不过是一个尝试。

  • 列表和对象具有相同的类。
objExist(statusClaim, statusClaimRP) /*<=== Is just the function on my code for reference */

private Boolean objExist(List<Object> arreglo, Object objeto) throws JSONException {
 Integer valida = 0;
 for(Integer i = 0; i < arreglo.size(); i++) {
     if(arreglo.get(i) == objeto) {
         valida++;
     }  
 }
 if(valida > 0) {
     return false;
 } else {
     return true;
 }
}

类型claimservice中的方法objexist(list'<'object'>',object)不适用于参数(list'<'statusclaimdto'>',statusclaimdto)。

vjrehmav

vjrehmav1#

据我所知,你想确保某个列表包含某个对象吗?如果是这样,你可以用 list.contains(objectToFind) 或流:

listOfSomeObjects.stream().anyMatch(obj -> obj.equals(objectToFind);

另外,出于学习的目的,您可以简单地在for循环中对列表进行迭代,并将其 Package 到泛型方法中:

private <T> boolean listContainsElement(List<T> list, T elementToFind) {
        for (T element: list) {
            if (element.equals(elementToFind)) {
                return true;
            }
        }
        return false;
    }

但这并不实际。
注: == 比较引用,而不是对象本身,这意味着如果obj1==obj2,这两个变量都指向同一个对象示例,如果这是您想要的,那么就确定。但我们通常把物体和 equals 方法,您可以重写它并使用自己的逻辑,否则它的默认实现基本上类似于 == 接线员。

相关问题