Java Language Obtención de subnodos de preferencias


Ejemplo

Preferences objetos de Preferences siempre representan un nodo específico en un árbol de Preferences completo, como este:

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

Para seleccionar el nodo /com/mycompany/myapp :

  1. Por convención, basado en el paquete de una clase:

    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. Por camino relativo:

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

    El uso de una ruta relativa (una ruta que no comienza con una / ) hará que la ruta se resuelva en relación con el nodo principal en el que se resuelve. Por ejemplo, el siguiente ejemplo devolverá el nodo de la ruta /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. Por camino absoluto:

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

    El uso de una ruta absoluta en el nodo raíz no será diferente de usar una ruta relativa. La diferencia es que, si se llama en un subnodo, la ruta se resolverá en relación con el nodo raíz.

    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