我正在使用此代码来获取我的资源:
this.getClass().getResourceAsStream("Image.png");
它可以正常工作,直到必须使用静态方法实现它为止:
public class UserDisplay {
public static void PlayerWon(final Display display, String player, final Composite WinCompo){
我无法在静态上下文中使用this
关键字,所以我使用了之前初始化的对象:
public class UserDisplay {
public static void PlayerWon(final Display display, String player, final Composite WinCompo){
final AudioLoop WinLoop = new AudioLoop("Sound.wav");
final Image WinBanner = new Image(display, WinLoop.getClass().getResourceAsStream("Image.png"));
效果很好,但这是我的问题:
这是合法的解决方法吗?如果没有,我该怎么办?
注意:我为可怜的标题表示歉意。
改为使用class literal。目前尚不清楚AudioLoop
是什么,但是除非它是您自己的库中的类,否则可能就是您想要的[[not。我怀疑您想要类似的东西:
new Image(display, UserDisplay.class.getResourceAsStream("Image.png"))
如果您要获取相对于do
AudioLoop
类的资源,请使用:new Image(display, AudioLoop.class.getResourceAsStream("Image.png"))
还请注意,您的方法和变量名称当前不符合Java命名约定,通常两者都为camelCased
。
new Image(display,
UserDisplay.class.getClassLoader().getResourceAsStream("Image.png"))