2015-07-26 23 views

risposta

1

Ciò si spiega con il javadoc per la classe URI:

"Un URI è opaco se, e solo se, è assoluta e la sua parte regime specifico non inizia con un carattere di barra ('/') un opaca URI ha uno schema, una parte specifica del sistema, ed eventualmente un frammento;. tutti gli altri componenti sono indefiniti "

i 'componenti' a cui fa riferimento sono i valori. restituito da variGetter.

Oltre a ciò la "differenza" comprende la differenza intrinseca tra URI opachi e gerarchici come da specifiche pertinenti; per esempio.

Quei differencese non sono in alcun modo Java specifica.

9

Un tipico esempio di uri opaco è un messaggio di posta elettronica mailto:[email protected]. Differiscono da un uri gerarchico in quanto non descrivono un percorso verso una risorsa.

Pertanto un Uri che è opaco restituisce null per getPath.

Alcuni esempi:

public static void main(String[] args) { 
    printUriInfo(URI.create("mailto:[email protected]")); 
    printUriInfo(URI.create("http://example.com")); 
    printUriInfo(URI.create("http://example.com/path")); 
    printUriInfo(URI.create("scheme://example.com")); 
    printUriInfo(URI.create("scheme:example.com")); 
    printUriInfo(URI.create("scheme:example.com/path")); 
    printUriInfo(URI.create("path")); 
    printUriInfo(URI.create("/path")); 
} 

private static void printUriInfo(URI uri) { 
    System.out.println(String.format("Uri [%s]", uri)); 
    System.out.println(String.format(" is %sopaque", uri.isOpaque() ? "" : "not ")); 
    System.out.println(String.format(" is %sabsolute", uri.isAbsolute() ? "" : "not ")); 
    System.out.println(String.format(" Path [%s]", uri.getPath())); 
} 

Prints:

Uri [mailto:[email protected]] 
is opaque 
is absolute 
Path [null] 
Uri [http://example.com] 
is not opaque 
is absolute 
Path [] 
Uri [http://example.com/path] 
is not opaque 
is absolute 
Path [/path] 
Uri [scheme://example.com] 
is not opaque 
is absolute 
Path [] 
Uri [scheme:example.com] 
is opaque 
is absolute 
Path [null] 
Uri [scheme:example.com/path] 
is opaque 
is absolute 
Path [null] 
Uri [path] 
is not opaque 
is not absolute 
Path [path] 
Uri [/path] 
is not opaque 
is not absolute 
Path [/path]