Ну, отчасти это зависит от того, что вы хотите, если вы действительно на самом деле в производном классе.
Например, предположим, что SuperClass
находится в A.jar и SubClass
находится в B.jar, и вы выполняете код в методе экземпляра, объявленном в SuperClass
, но где this
ссылается на экземпляр SubClass
. Если вы используете this.getClass().getResource()
, он будет выглядеть относительно SubClass
, в B.jar. Я подозреваю, что обычно не требуется.
Лично я бы чаще всего использовал Foo.class.getResourceAsStream(name)
- если вы уже знаете имя ресурса, за которым вы находитесь, и вы «Конечно, где это относительно Foo
, это самый надежный способ сделать это IMO.
Конечно, бывают случаи, когда это не , что вы хотите, тоже : судить по каждому делу по существу. Это просто «Я знаю, что этот ресурс связан с этим классом» - это самый распространенный из тех, с которыми я столкнулся.