【问题标题】:Assigning two arrays by ID按 ID 分配两个数组
【发布时间】:2020-04-29 22:49:54
【问题描述】:

我被简单的事情困住了,比如循环 forif 语句。

我有两个不同的对象:

对象A:

0:id = 1,name = null

1:id = 3,name = null

对象B:

id = 1,名称 = NameForID1

id = 3, name = NameForID3

我的意思是通过 ID 值将名称从 objectB 分配给 objectA。

我已经完成了双循环 + if:

            for (int i = 0; i <= objectA.size() - 1; i++){
                for(int j = 0; j<=objectB.size() - 1; j++){
                    if(Objects.requireNonNull(objectA.get(i).getobjectAID()).equals(objectB.get(j).getObjectBID()))
                        objectA.get(i).setobjectAName(objectB.get(j).getobjectBName());
                }
            }

在此之后,我有一个 objectA 列表,其姓氏来自 objectB 数组。根据 Android Studio Debugger 和一些......逻辑......这是合乎逻辑的,但我错过了什么并且做错了什么?

我的错误输出:

对象A:

0: id = 1, name = NameForID3

1: id = 3, name = NameForID3

预期输出:

对象A:

0: id = 1, name = NameForID1

1: id = 3, name = NameForID3

UPD

ObjectA 类:

class objectA:Serializable {
    var objectAID: Int? = null
    var objectAName: String? = null
}

ObjectB 类:

class objectB {

    var objectBName: String? = null
    var objectBID: Int? = null

}

UPD。 2020 年 4 月 30 日: 仍然得到相同的错误输出,根据下面的答案尝试了 Java 中的 equals=====、POJO 的不同变体,而不是 Kotlin。

UPD: 只是浪费了你的时间 - 当我试图发现你的提示有错误时,我已经对我的代码进行了恶意软件攻击,并开始为 objectA 所以和名称分配相同的 ID是平等的。

【问题讨论】:

    标签: java android loops if-statement kotlin


    【解决方案1】:

    我假设idsintegers

    试试这个:

    for (int i = 0; i < objectA.size(); i++){
    
    for(int j = 0; j < objectB.size(); j++){
    
    if(objectA.get(i).getobjectAID() == objectB.get(j).getObjectBID()){
    
    //set
    objectA.get(i).setobjectAName(objectB.get(j).getobjectBName());
    
    }
    
    }
    
    }
    

    你的 POJO 必须像这样在 java 中:

    对象 A

    public class objectA {
        private int objectAID;
        private String objectAName;
    
        //generate getters and setters........
    }
    

    对象 B

    public class objectB {
        private int objectBID;
        private String objectBName;
    
        //generate getters and setters........
    }
    

    【讨论】:

    • 有了这段代码,它没有进入if 语句,所以我没有得到任何setobjectAName()
    • 你的 ids 是整数还是字符串?
    • 所有 id 都是整数。 equals 语句将我从我的帖子中返回到我的错误输出中。
    • IDE 无法识别运算符 ===,出现错误“预期表达式”。
    • 你在使用 Kotlin?
    猜你喜欢
    • 2021-03-19
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多