Java Language Obtenir des sous-noeuds de préférences


Exemple

Preferences objets de Preferences représentent toujours un nœud spécifique dans une arborescence de Preferences entière, un peu comme ceci:

/userRoot
├── com
│   └── mycompany
│       └── myapp
│           ├── darkApplicationMode=true
│           ├── showExitConfirmation=false
│           └── windowMaximized=true
└── org
    └── myorganization
        └── anotherapp
            ├── defaultFont=Helvetica
            ├── defaultSavePath=/home/matt/Documents
            └── exporting
                ├── defaultFormat=pdf
                └── openInBrowserAfterExport=false

Pour sélectionner le noeud /com/mycompany/myapp :

  1. Par convention, basée sur le package d'une classe:

    package com.mycompany.myapp;
    
    // ...
    
    // Because this class is in the com.mycompany.myapp package, the node
    // /com/mycompany/myapp will be returned.
    Preferences myApp = Preferences.userNodeForPackage(getClass());
    
  2. Par chemin relatif:

    Preferences myApp = Preferences.userRoot().node("com/mycompany/myapp");
    

    L'utilisation d'un chemin relatif (un chemin ne commençant pas par / ) entraînera la résolution du chemin par rapport au nœud parent sur lequel il est résolu. Par exemple, l'exemple suivant renvoie le noeud du chemin /one/two/three/com/mycompany/myapp :

    Preferences prefix = Preferences.userRoot().node("one/two/three");
    Preferences myAppWithPrefix = prefix.node("com/mycompany/myapp");
    // prefix          is /one/two/three
    // myAppWithPrefix is /one/two/three/com/mycompany/myapp
    
  3. Par chemin absolu:

    Preferences myApp = Preferences.userRoot().node("/com/mycompany/myapp");
    

    L'utilisation d'un chemin absolu sur le nœud racine ne sera pas différente de l'utilisation d'un chemin relatif. La différence est que, s'il est appelé sur un sous-nœud, le chemin sera résolu par rapport au nœud racine.

    Preferences prefix = Preferences.userRoot().node("one/two/three");
    Preferences myAppWitoutPrefix = prefix.node("/com/mycompany/myapp");
    // prefix            is /one/two/three
    // myAppWitoutPrefix is /com/mycompany/myapp