同一性的危机

谜题:使equals始终返回false
出自《java puzzle》


下面的程序是不完整的,它缺乏对Enigma的声明,这个类扩展自java.lang.Object。请为Enigma提供一个声明,它可以使该程序打印false:


public class Conundrum {
public static void main(String[] args) {
Enigma e = new Enigma();
System.out.println(e.equals(e));
}
}


噢,还有一件事:你不能覆写equals方法。
乍一看,这似乎不可能实现。因为Object.equals方法将测试对象的同一性,通过Enigma传递给equals方法的对象肯定是与其自身相同的。如果你不能覆写Object.equals方法,那么main方法必然打印true,对吗?
别那么快下结论,伙计。尽管本谜题禁止你覆写(override)Object.equals方法,但是你是可以重载(overload)它的,这也就引出了下面的解谜方案:


final class Enigma {
// Don’t do this!
public Boolean equals(Enigma other){
return false;
}
}


尽管这个声明能够解决本谜题,但是它的做法确实非常不好的。如果同一个方法的两个重载版本都可以应用于某些参数,那么它们应该具有相同的行为。在本例中,e.equals(e)和e.equals((Object)e)将返回不同的结果,其潜在的混乱是显而易见的。
然而,有一种解谜方案是不会违反这项建议的:
final class Enigma {
public Enigma() {
System.out.println(false);
System.exit(0);
}
}
可能会有些争论,这个解谜方案似乎违背了本谜题的精神:能够产生我们想要的输出的println调用出现在了构造器中,而不是在main方法中。然而,它确实解决了这个谜题,你不得不承认它很伶俐。
这里的教训,如果你重载了一个方法,那么一定要确保所有的重载版本行为一致。
【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
(1)“在危机中育新机,于变局中开新机”所蕴含的唯物辩证法思想是:在矛盾的同一性和斗争性原理的基础上,通过对危机和变局的深刻认识和分析,积极发挥主观能动性,在斗争中寻找和创造新的机遇和发展空间。具体来说: - 矛盾的同一性危机和变局是事物发展过程中必然存在的矛盾,但同时也包含着新的发展机遇。因此,在危机和变局中寻找新机遇和发展空间,就是充分发挥同一性原理的体现。 - 矛盾的斗争性:危机和变局也是相互斗争的过程,但是通过斗争,可以打破旧的局面,创造新的局面。因此,在危机和变局中,要发挥斗争性的作用,积极寻找突破口和创新点,打破困境,开创新局面。 (2)“主动求变”与“精准识变”之间的辩证关系体现了主观能动性和客观规律性的统一和辩证关系。具体来说: - 主动求变:主观能动性的表现,是指在变革面前,积极主动地寻找变革的机遇和突破口,通过主动的行动和创新,推动事物向着更好的方向发展。 - 精准识变:客观规律性的表现,是指在变革面前,要通过对变革的深刻认识和分析,准确把握变革的趋势和方向,及时调整和改进自己的行动,以适应变化的规律。 两者之间的辩证关系在于: - 主动求变需要建立在精准识变的基础之上,只有准确把握变化的趋势和方向,才能寻找到变革的机遇和突破口。 - 精准识变也需要建立在主动求变的基础之上,只有积极主动地寻找变革的机遇和突破口,才能更好地把握变化的规律和趋势。 因此,“主动求变”与“精准识变”的辩证关系体现了主观能动性和客观规律性的统一和辩证关系,只有二者相互配合,才能有效地推动事物向着更好的方向发展。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值