2

私はそのようなコードを持っています:

private String getUsername(PersonalAccount account) {
    User usr = (User)account?.usr
    String name = usr?.getName()
    return name
}

PersonalAccount クラスには次のフィールドがあります。

SimpleUser usr

ユーザーは SimpleUser を拡張します

これはどういう意味ですか: ?. この2行で?

User usr = (User)account?.usr
    String name = usr?.getName()
4

1 に答える 1

5

それは Java ではなく、Groovy です。Java の場合は、各ステートメントをセミコロンで終了します。

このメソッドは、渡されたアカウントのユーザーの名前を返します。アカウントが null の場合、またはユーザーが null の場合は null を返します。

安全なナビゲーション演算子を使用します。セーフ ナビゲーション演算子は、オペランドが null の場合は null に評価され、それ以外の場合はメソッド呼び出しの結果に評価されます。そうすれば、null の可能性があるものに対してメソッド呼び出しを行う場合、NullPointerException が発生することを心配する必要はありません。

于 2013-08-12T20:30:00.623 に答える