当我在.set()方法中有两个方法时它是如何工作的?

我是 Java 新手,我需要帮助理解代码试图做什么。我对最后一行感兴趣(sd.setId(sh.getGrade().getSchoolId());)。我知道它是在 sd 对象中使用 setId 设置的,但是我有点困惑(sh.getGrade().getSchoolId()) 的其余部分正在尝试做什么。是否先调用 getSchoolId() 方法,然后调用 sh.getGrade() 并在 sd 中设置所有内容?当一行代码中有多个点(.)运算符时,如何读取代码?

while (oneIter.hasNext()) {
 ShoolHistory sh= (ShoolHistory) oneIter.next();
 ScoolDetailId sd = new ScoolDetailId();
 sd.setId(sh.getGrade().getSchoolId());

回答

对于这样的事情,最简单的方法是将每个打开的命令分成几行。那么你的结果将是:

while (oneIter.hasNext()) {
    ShoolHistory sh = (ShoolHistory) oneIter.next();
    ScoolDetailId sd = new ScoolDetailId();
    Grade grade = sh.getGrade(); // I'm just assuming some types here and for the id
    Integer id = grade.getSchoolId(); // I like btw the usage of all possible variations of writing "school"
    sd.setId(id);
}

因此,如果您有一行包含多个点运算符,您可以像往常一样从左到右阅读。然后,如果像这里一样用作某些方法的参数,则从内到外。


以上是当我在.set()方法中有两个方法时它是如何工作的?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>