public class GameUtils { //蛇头 public static Image upImg=Toolkit.getDefaultToolkit().getImage("src\\com\\hh\\img\\up.png"); public static Image downImg=Toolkit.getDefaultToolkit().getImage("src\\com\\hh\\img\\down.png"); public static Image leftImg=Toolkit.getDefaultToolkit().getImage("src\\com\\hh\\img\\left.png"); public static Image rightImg=Toolkit.getDefaultToolkit().getImage("src\\com\\hh\\img\\right.png"); //蛇身 public static Image bodyImg=Toolkit.getDefaultToolkit().getImage("src\\com\\hh\\img\\body.png"); //食物 public static Image foodImg=Toolkit.getDefaultToolkit().getImage("src\\com\\hh\\img\\food.png"); }用反射方法改写这段代码
时间: 2023-07-08 11:48:21 浏览: 101
可以使用反射方法来改写这段代码,以下是改写后的代码:
```
public class GameUtils {
//蛇头
public static Image upImg;
public static Image downImg;
public static Image leftImg;
public static Image rightImg;
//蛇身
public static Image bodyImg;
//食物
public static Image foodImg;
static {
try {
Class clazz = Class.forName("com.hh.img.GameUtils");
upImg = Toolkit.getDefaultToolkit().getImage(clazz.getResource("up.png"));
downImg = Toolkit.getDefaultToolkit().getImage(clazz.getResource("down.png"));
leftImg = Toolkit.getDefaultToolkit().getImage(clazz.getResource("left.png"));
rightImg = Toolkit.getDefaultToolkit().getImage(clazz.getResource("right.png"));
bodyImg = Toolkit.getDefaultToolkit().getImage(clazz.getResource("body.png"));
foodImg = Toolkit.getDefaultToolkit().getImage(clazz.getResource("food.png"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
使用反射方法可以避免使用硬编码的路径,而是通过类加载器来获取资源文件的路径。同时,这种方法也可以避免在不同的操作系统上出现路径格式不一致的问题。
阅读全文