Quelle est la signification de cette notation. (AlertDialog.Builder) dans un constructeur de classe?
public Dialog onCreateDialog(Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setTitle(R.ssortingng.date_picker_title) .setPositiveButton(android.R.ssortingng.ok, null) .create(); }
Cela signifie-t-il que la classe Builder est définie à l’intérieur de la classe AlertDialog? Ou Builder est une méthode, mais sa première lettre est en majuscule, donc je suis confus.
Ce modèle s’appelle méthode chaînage .
Builder est une classe interne statique d’AlertDialog.
Chaque méthode dans Builder renvoie un générateur (généralement “this”) au lieu de void.
Cela signifie que Builder est une classe nestede statique dans la classe AlertDialog, c’est-à-dire
class AlertDialog { static class Builder { ..
Builder
est une classe interne statique de la classe AlertDialog
.
Je vous conseille de lire ceci sur l’utilisation et l’utilité des classes nestedes
Découvrez la documentation !
Builder
est une classe statique définie dans la classe AlertDialog
. Vous appelez son constructeur.
Ceci est le modèle de conception Builder .
Ce que vous faites dans votre code:
new AlertDialog.Builder(getActivity())
setTitle
et setPositiveButton
AlertDialog
en appelant la méthode create()
avec les propriétés du générateur. Le motif Builder est un motif de création qui signifie qu’il résout le problème lié à la création d’objects. Les constructeurs en Java sont utilisés pour créer un object et peuvent prendre les parameters requirejs pour créer un object. Le problème commence quand un object peut être créé avec beaucoup de parameters, certains d’entre eux peuvent être obligatoires et d’autres optionnels. Le modèle de conception de constructeur doit être utilisé lorsque le nombre de parameters requirejs dans le constructeur est plus que gérable, généralement 4 ou au plus 5.