Perché pubblico InputStream getResourceAsStream (nome stringa) è nella classe Class? Fornisce solo l'input del file che si trova nel file jar e non vi è alcuna relazione con la classe Class. quindi può essere un metodo statico e può essere di qualsiasi classe.Perché il metodo getResourceAsStream è in classe Class?
7
A
risposta
9
Ci è una relazione alla classe:
- Il pacchetto della classe viene presa in considerazione - se si dà chiamata
getResourceAsStream("baz.txt")
sulla classe perfoo.bar.SomeClass
cercherà/foo/bar/baz.txt
- Il classloader viene preso in considerazione per trovare le risorse in primo luogo - se fosse un metodo statico, come saprebbe quali file jar (etc) cercare? C'è di più alla vita che il programma di caricamento classe sistema di
1
E basta dare inputstream di lima che è in file jar ...
errato. Non tutti i classloader caricano le risorse dal normale file JAR.
- Alcuni programmi di caricamento classe caricano da directory.
- Alcuni programmi di caricamento classe caricano dalla rete.
- Alcuni programmi di caricamento classe caricano da più origini.
Tutto di questa complessità è nascosta da voi quando si utilizza l'API ClassLoader
via Class
in questo caso.
... e non vi è alcuna relazione con classe Classe.
errato. Vedi @Jon Skeet's answer. Nota che chiamare Class.getResourceAsStream(String)
fornisce una risorsa che appartiene allo stesso contesto di sicurezza della classe. Questo può essere molto importante se ci sono più contesti di classe/sicurezza in uso.
Problemi correlati
- 1. Il metodo getResourceAsStream restituisce null su ubuntu
- 2. È .class un metodo o un campo?
- 3. getResourceAsStream da JUnit
- 4. Perché il metodo __new__ di una classe non è __dict__?
- 5. Swift: Perché il metodo di classe è stato eliminato
- 6. Perché il metodo principale è privato?
- 7. Perché Object.class == Class in Ruby?
- 8. Utilizzo del metodo self-class
- 9. getResourceAsStream non carica risorse in webapp
- 10. ClassLoader getResourceAsStream restituisce null
- 11. Il costruttore privato Scala class di classe non è privato
- 12. Perché il mio metodo @BeforeClass non è in esecuzione?
- 13. Eclipse getResourceAsStream restituisce null
- 14. Differenza tra ClassLoader.getSystemResourceAsStream e getClass() getResourceAsStream()
- 15. Dove getResourceAsStream (file) cerca il file?
- 16. getResourceAsStream percorsofile durante l'esecuzione .jar
- 17. Perché il metodo protetto non è accessibile dalla sottoclasse?
- 18. esegue il metodo della classe derivata, ma ottiene il parametro predefinito dal metodo della classe base
- 19. Perché sovrascrivere il metodo clone in Java
- 20. Perché alcune persone usano il metodo Class # invece di Class.method nella corrispondenza?
- 21. Il modulo del metodo (Classe <T>) dalla classe Form è obsoleto in Play! Framework
- 22. In qualche codice Java, perché il class deck estende la classe Card?
- 23. Perché getResourceAsStream() funziona nell'IDE ma non nel JAR?
- 24. qual è la differenza tra `public class` e just` class`?
- 25. Python 2.6: Class in a Class?
- 26. Perché TUTTO è un'istanza di Class in Ruby?
- 27. metodo call class php da metodo statico all'interno della stessa classe ma non istanziato
- 28. Ottieni la classe in cui è stato definito il metodo?
- 29. Il controllo di un tipo di classe (.class) è uguale ad un altro tipo di classe
- 30. Come può Class essere della classe Class e non avere metodi di istanza di classe?