我有以下路径:
com/teama/merc/test/resTest
我想将其转换为:
com\teama\merc\test\resTest
我想上面的路径附加到路径:
C:\Users\Toby\git\MERCury\MERCury\
随着str.replace('/', '\\');但是,当我追加两个串在一起的,是这样的输出:
C:\Users\Toby\git\MERCury\MERCury\com/teama/merc/test/resTest
这是有问题的代码:
String home = System.getProperty("user.dir");
path.replace('/', '\\');
System.out.println(path);
String folder = home + File.separatorChar + path;
System.out.println(folder);
File file = new File(folder);
if(file.isDirectory())
{
System.out.println(file.getPath() + " is a directory");
}
Run Code Online (Sandbox Code Playgroud)
由于斜杠,附加路径不会被视为文件夹.有帮助吗?
编辑:只是为了澄清,完整路径(两个附加的字符串)实际上是一个文件夹.
我有一个方法,它接受一个超类的列表(特别是我的类 Mob)。它看起来像这样:
List<? extends Mob> mobs
Run Code Online (Sandbox Code Playgroud)
我希望能够将任何扩展超类 Mob 的对象添加到此列表,如下所示:
spawnMob(new Zombie(World.getInstance(), 0, 0), World.getInstance().getZombies());
Run Code Online (Sandbox Code Playgroud)
这是有问题的方法:
public static void spawnMob(Mob mob, List<? extends Mob> mobs){
mobs.add(mob);
}
Run Code Online (Sandbox Code Playgroud)
这行代码World.getInstance().getZombies()返回 Zombie 对象的 List。僵尸扩展了暴民。
然而,这行代码:
mobs.add(mob);
Run Code Online (Sandbox Code Playgroud)
抛出这个错误:
The method add(capture#1-of ? extends Mob) in the type List<capture#1-of ? extends Mob> is not applicable for the arguments (Mob)
Run Code Online (Sandbox Code Playgroud)
我可以做什么来解决这个问题?
编辑,将方法更改为 except 后,List<Mob>我收到此错误:
The method spawnMob(Mob, List<Mob>) in the type MobSpawner is not applicable for the arguments (Zombie, List<Zombie>)
Run Code Online (Sandbox Code Playgroud) 我有一个类,Tile它有一个带有Color对象参数的构造函数:
class Tile
{
public:
static const int size = 32;
Tile();
Tile(Color &color);
void render(int x, int y);
Color getColor();
~Tile();
private:
Color _color;
};
Run Code Online (Sandbox Code Playgroud)
然后我有一个子类,TileGrass继承Tile:
class TileGrass : public Tile
{
public:
TileGrass();
~TileGrass();
};
Run Code Online (Sandbox Code Playgroud)
现在的问题是TileGrass需要Tile使用Color参数继承构造函数.但是,TileGrass对象已经知道它需要给超类提供什么颜色,所以我不想Color在创建新TileGrass对象时传入对象.在Java中,我可以这样做:
public class TileGrass extends Tile {
public TileGrass() {
super(color object);
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在C++中做这样的事情?