小编Kro*_*907的帖子

如何检查一个类是否扩展了另一个类

我已经看到了这个问题的变种,但它们都没有真正解决我的问题.

让我们说我正在建立一个有班级的军队.在我的继承结构的顶部,我有一个抽象的" 单元 "类.然后是一个抽象的" 飞行 "," 地面 "和" 建筑 "类,它扩展了单位.然后是一个延伸飞行的具体" 直升机 "和" 喷气式 "课程.以及延伸地面的具体" 士兵 "和" 坦克 "类.最后是一个扩展建筑的" 总部 "和" 供应 ".

以下是" 士兵 "类下的方法:

public void attack(Unit enemy){
if(enemy.getSuperclass().equals(Flying)){
    System.out.print("Soldiers cant attack flying units");
}
else{
    //Code to attack enemy here
}
Run Code Online (Sandbox Code Playgroud)

我希望敌人成为任何形式的单位.这是因为士兵应该能够攻击建筑物和其他地面单位,但我不希望士兵能够攻击飞行物体.

显而易见的问题是,因为我将敌人声明为一个单位,它不知道它属于哪个子类,因此试图找到一个不存在的单位的超级类.

我确信我可以为每个单位设置一个吸气剂,它可以手动设置它是什么类型的单位......但这是更多的工作,似乎并不高效.

java methods inheritance class object

6
推荐指数
1
解决办法
7816
查看次数

从bash脚本运行时出现Rsync语法错误

我一直在研究使用rsync进行增量备份的备份脚本.

我已手动测试了以下rsync命令,它运行并完成备份而没有错误:

rsync -aAXv --delete --progress --link-dest=/backup/Uyuk/Uyuk-backup-part1/2014-02-24/ /mnt/backup/ /backup/Uyuk/Uyuk-backup-part1/2014-02-25/
Run Code Online (Sandbox Code Playgroud)

但是,当我在备份脚本中运行相同的命令时,它会给我以下错误:

rsync: -aAXv --delete --progress --link-dest=/backup/Uyuk/Uyuk-backup-part1/2014-02-24/ /mnt/backup/ /backup/Uyuk/Uyuk-backup-part1/2014-02-25/: unknown option
rsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]
Run Code Online (Sandbox Code Playgroud)

我在我的脚本上运行了bash -x来确定发送到控制台的确切内容,以下是打印的内容:

+ rsync '-aAXv --delete --progress --link-dest=/backup/Uyuk/Uyuk-backup-part1/2014-02-24/ /mnt/backup/ /backup/Uyuk/Uyuk-backup-part1/2014-02-25/'
Run Code Online (Sandbox Code Playgroud)

有谁看到有什么问题?我找不到任何会导致语法错误的东西.

编辑:这是我在脚本中的实际代码,这是一个非常大的脚本,所以是的,这里没有定义一些变量,但你明白了.

mkdir -p "/backup/$HOST/$NAME/$TODAY"
#source directory
SRC="$MNT"
#link directory
LNK="/backup/$HOST/$NAME/$LAST/"
#target directory
TRG="/backup/$HOST/$NAME/$TODAY/"
#rsync options
OPT1="-aAXv --delete --progress --link-dest=$LNK"

#run the rsync command
echo "rsync $OPT1 $SRC $TRG"
rsync "$OPT1 $SRC $TRG" > /var/log/backup/backup.rsync.log 2>&1
Run Code Online (Sandbox Code Playgroud)

syntax bash rsync

1
推荐指数
1
解决办法
9655
查看次数

标签 统计

bash ×1

class ×1

inheritance ×1

java ×1

methods ×1

object ×1

rsync ×1

syntax ×1