【发布时间】:2019-10-28 09:04:42
【问题描述】:
在 javascript 中有对象解构,因此如果中间对象被多次重用,我们可以分解对象并仅使用结束键。例如)
const person = {
firstName: "Bob",
lastName: "Marley",
city: "Space"
}
所以我们可以像这样解构它,而不是调用person.<> 来获取每个值
console.log(person.firstName)
console.log(person.lastName)
console.log(person.city)
解构:
const { firstName, lastName, city } = person;
然后这样调用:
console.log(firstName)
console.log(lastName)
console.log(city)
Java 中有类似的东西吗?我有这个 Java 对象,我需要从中获取值,并且必须像这样调用长的中间对象名称:
myOuterObject.getIntermediateObject().getThisSuperImportantGetter()
myOuterObject.getIntermediateObject().getThisSecondImportantGetter()
...
我希望以某种方式对其进行解构,然后调用最后一个方法getThisSuperImportantGetter()、getThisSecondImportantGetter() 以获得更简洁的代码。
【问题讨论】:
-
这是你如何在Java中“解构”对象。有多种方法可以将字符串转换为属性,但没什么意义,或者您可以引入 jvm 脚本语言。无论哪种方式,您都会支付性能损失。或者您可以获取中间对象并以此为基础您的主线代码。当您进入嵌套对象时,“干净”通常与 Java 代码无关(并且可以说这样做可能有点粗略,具体取决于您需要能够轻松地修改/扩展代码,例如,Demeter )。
-
Java 并不以简洁或富有表现力而闻名。如果这些品质对您很重要,您可能想看看另一种 JVM 语言。
-
不,它没有,但是您可以使用第一个 getter 的结果调用方法,然后在该方法内部使用内部对象。
-
可以先将内部对象赋值给一个1字母的变量,然后调用
a.getThisSuperImportantGetter();a.getThisSecondImportantGetter();
标签: java object destructuring