随手记一写BUG

1、swagger 不能识别斜杠问题

  • Swagger Error
    • Resolver error at paths./api/xxx/xxx.post.parameters.0.schema.$ref
    • Could not resolve reference because of: Could not resolve pointer: /definitions/PageCondition«xxx» does not exist in document
  • 原因
    • @ApiModel("xxx/xxx列表查询条件")
    • 在API注释中出现斜杆 /,Swagger 无法识别斜杆。
  • 解决方案
    • 去掉斜杆改为 @ApiModel("xxx、xxx列表查询条件")

2、MyBatis if 标签判断字符串相等

  • 问题
    • <if test="sex=='Y'"> and 1=1 </if> 无法进入 if 标签
  • 原因
    • 因为 MyBatis 使用 OGNL 表达式进行解析,会把 ‘Y’ 解析为字符
    • 在单引号内只有一个字符的情况下,OGNL会将其以 Java 中的 char 类型进行解析,那么此时 char 类型与参数 String 类型用等号进行比较,结果一定 false。
  • 解决方案
    • <if test="sex=='Y'.toString()">
    • <if test = 'sex== "Y"'>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的 Bug2 算法的伪代码实现: ``` 1. 初始化机器人的位置和目标位置 2. while 机器人没有到达目标位置 do: 3. 如果机器人在自由空间,则直接向目标位置移动 4. 否则,机器人进入障碍物,并绕过障碍物 5. 如果机器人无法绕过障碍物,则返回到上一个位置,并寻找一个新的绕路方案 6. end while 7. 输出机器人已经到达目标位置 ``` 下面是一个使用 Python 语言实现 Bug2 算法的示例代码: ```python import math class Robot: def __init__(self, x, y): self.x = x self.y = y self.heading = 0 def move(self, distance): self.x += distance * math.cos(self.heading) self.y += distance * math.sin(self.heading) def turn(self, angle): self.heading += angle class Bug2: def __init__(self, robot, goal, obstacles): self.robot = robot self.goal = goal self.obstacles = obstacles self.distance_threshold = 0.1 self.heading_threshold = math.pi / 10 self.hit_obstacle = False self.prev_distance = self.distance_to_goal() def distance_to_goal(self): dx = self.goal[0] - self.robot.x dy = self.goal[1] - self.robot.y return math.sqrt(dx*dx + dy*dy) def angle_to_goal(self): dx = self.goal[0] - self.robot.x dy = self.goal[1] - self.robot.y return math.atan2(dy, dx) - self.robot.heading def distance_to_obstacle(self): min_distance = float('inf') for obstacle in self.obstacles: dx = obstacle[0] - self.robot.x dy = obstacle[1] - self.robot.y distance = math.sqrt(dx*dx + dy*dy) - obstacle[2] if distance < min_distance: min_distance = distance return min_distance def can_move_forward(self): distance = self.distance_to_obstacle() return distance > self.distance_threshold def can_reach_goal(self): distance = self.distance_to_goal() return distance <= self.distance_threshold def follow_boundary(self): self.hit_obstacle = True angle = math.pi / 2 while True: self.robot.turn(angle) if self.can_move_forward(): self.robot.move(self.distance_threshold) self.hit_obstacle = False break angle *= -1 if abs(angle) > math.pi: break def update(self): if self.can_reach_goal(): return if self.can_move_forward(): angle = self.angle_to_goal() if abs(angle) > self.heading_threshold: self.robot.turn(angle) self.robot.move(self.distance_threshold) else: if not self.hit_obstacle: self.prev_distance = self.distance_to_goal() self.follow_boundary() if self.distance_to_goal() > self.prev_distance: self.robot.turn(math.pi) self.hit_obstacle = False ``` 在这个示例代码中,我们定义了一个 Robot 类来表示机器人的状态,包括位置和朝向。我们还定义了一个 Bug2 类来实现算法的主要逻辑。在 Bug2 类中,我们实现了一些辅助函数,例如计算机器人到目标位置的距离、计算机器人到最近障碍物的距离等。在主循环中,我们检查机器人当前是否在自由空间,如果是,则直接向目标位置移动;否则,机器人进入障碍物,并绕过障碍物。如果机器人无法绕过障碍物,则返回到上一个位置,并寻找一个新的绕路方案。最后,当机器人到达目标位置时,算法停止运行,输出机器人已经到达目标位置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值