Run Code Online (Sandbox Code Playgroud)String answer = question1?.question2?.answer
有没有一种方法(最好是内置的)来获取涵盖以下两种情况的对象的属性:
最重要的是,有没有办法为深度嵌套的属性链接此类获取操作?
Tra*_*ICU -3
可以获得“类似”的行为(链),但只需使用自定义代码(不是内置的东西)
public class TestChain
{
public static void main(String args[])
{
TestChain tc = new TestChain();
Person p = tc. new Person();
p.setName("pName").getMsg().setAge(10).getMsg();
}
class Person
{
String name;
int age;
public Person setName(String name)
{
this.name = name;
return this;
}
public Person setAge(int age)
{
this.age = age;
return this;
}
public Person getMsg()
{
System.out.println(this);
return this;
}
public String toString()
{
return "name="+name+",age="+age;
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
name=pName,age=0
name=pName,age=10
Run Code Online (Sandbox Code Playgroud)
基本上要链接的方法需要返回当前实例。