Java 中是否有相当于 Javascript 可选链的功能?

Aak*_*rma 9 java

String answer = question1?.question2?.answer
Run Code Online (Sandbox Code Playgroud)

有没有一种方法(最好是内置的)来获取涵盖以下两种情况的对象的属性:

  1. 如果对象为 null,则返回属性的 null 值。
  2. 如果对象中不存在属性,则返回 null。

最重要的是,有没有办法为深度嵌套的属性链接此类获取操作?

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)

基本上要链接的方法需要返回当前实例。