2017-02-28 12 views
0

私はクラスMyClassを持ち、クラス内にはMyClass.class.getClassLoader().getResource("SCHEMA.xsd")を呼び出しています。このコードで強化スキャンを実行すると、getResource()を呼び出す前にMyClass.class.getClassLoader()にヌルを処理すると文句を言います。私は本当にここでnullを処理する必要がありますか?どんなシナリオの下でgetClassLoader()はnullを返しますか?getResource()を呼び出す前にgetClassLoader()でnullを処理する必要がありますか?

答えて

2

のJavadoc

によれば、いくつかの実装では、ブートストラップクラスローダを表すためにnullを使用してもよいです。このクラスがブートストラップクラスローダによってロードされた場合、このメソッドはこのような実装でnullを返します。 [...]このオブジェクトがプリミティブ型またはvoidを表す場合、nullが返されます。

フレームワークを使用しない場合は、ほとんどの場合安全です。ドキュメントを参照してください:https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getClassLoader()

編集

+0

Javadocを@mangotangからのコメントで修正もいくつかの実装は、ブートストラップクラスローダを表すためにnullを使用することができます 'と言います。このメソッドは、このクラスがブートストラップクラスローダによってロードされた場合、そのような実装ではnullを返します。 – mangotang

関連する問題