出自《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方法中。然而,它确实解决了这个谜题,你不得不承认它很伶俐。
这里的教训,如果你重载了一个方法,那么一定要确保所有的重载版本行为一致。
分享到:
相关推荐
艾里克森强调,教育在帮助青少年解决同一性危机中的作用至关重要。教育者应当鼓励青少年进行自我探索,提供多元化的体验机会,让他们有机会尝试不同的角色和可能性,从而有助于他们形成健康的自我同一性。 此外,...
教师可以通过帮助学生了解自我,探索个人兴趣和潜力,建立合理的职业期待,以协助他们解决自我同一性危机。 【知识点4】德育原则 王老师对林的教育遵循了"尊重与严格要求相结合"的原则,理解并关心林,同时对其行为...
此外,董如峰还分析说,如果再往深处挖办公室流言这个让无数人摔了跟头的“大坑”,会发现它真正的“幕后黑手”叫“同一性危机”,就是新弗洛伊德主义者埃里克森提出的著名八阶段理论中的“同一性对同一性”。...
10. **同一性延缓**:这是青少年在形成个人同一性时可能会经历的阶段,他们在做重大决定之前会探索多种可能性,长时间的延缓可能表明他们正在努力解决同一性危机。 选择题中的知识点表明,随着青春期的到来,青少年...
成功的同一性建立意味着个体具有清晰的生活目标和方向感,而同一性危机则可能导致个体感到迷茫和困惑。 艾里克森的理论强调了各个发展阶段的连续性和相互影响,它突显了个体成长并非孤立的过程,而是与社会环境密切...
当个体深陷“我是什么人”、“我该怎么做”的思考中,可能面临同一性危机,这是青少年时期常见的心理挑战。 6. **幼儿的主导活动**: 游戏是幼儿期的主要活动形式,通过游戏,幼儿可以学习社会规则,发展认知和...
34. 《同一性危机》的作者:艾瑞克森。 35. 六七十年代的人面临:物质匮乏。 36. 大学生在成年早期的任务:人格成熟。 37. 大学生最重要的任务:本专业的学习。 38. 利他与利己的平衡:平衡在于自己给予与收获的...
对于青少年期的学生而言,根据埃里克森的人格发展阶段理论,教师需要帮助学生解决同一性危机,引导他们建立自我认同,并确定自己的角色和未来方向。 感觉对比在教学中的运用是提高学生感知能力的有效方法。以物理...
青年人处于艾里克逊的心理社会发展理论的“自我同一性-同一性混乱”阶段,他们在寻找自我认同的过程中容易产生心理困扰。同时,青年人的情绪活动具有两极性,思维也有其局限,比如自我意识强烈但主体意识缺失,对...
生产的社会化与生产资料的私人占有之间的矛盾导致了这种周期性危机。在资本主义制度下,资本追求最大限度的利润,会不断推动生产能力的扩张。然而,这种扩张并非总是伴随着消费者购买力的提升,尤其在劳动力市场上,...
对于领导危机,企业应提前规划接班人策略,确保平稳过渡,并保持企业战略的连续性和稳定性。\n\n总结来说,企业要克服习俗危机和领导危机,必须深入理解市场文化,灵活调整战略,同时注重领导力的培养和传承,以确保...
2007年,一场起源于美国的金融风暴席卷全球,这场风暴即为著名的次贷危机。该危机的起因是多方面的,它揭示了金融市场的脆弱性,暴露了监管的不足,同时也对全球经济和金融稳定产生了深远的影响。 在次贷危机发生前...
1. 经济大危机的时间:经济大危机始于1929年,结束于1933年,这是一场破坏性极大的全球性经济危机。 2. 危机起源:这场危机首先从美国开始,然后迅速蔓延到整个资本主义世界。 3. 危机的特点:危机的特点包括破坏...
1. **危机管理的重要性**:企业管理者需认识到危机管理是企业生存和发展不可或缺的部分,预警系统仅是管理的一部分,而建立全面的危机管理系统才能更有效地应对危机。 2. **危机管理方案的构成**:优秀的危机管理...
此外,通过对公司及同行业过去危机事件的历史分析,企业能够预测和防范可能发生的类似问题。在规划分析方面,企业要评估未来规划中可能出现的风险点以及它们的潜在影响,确保企业在未来的经营活动中不会受到重大的...
危机公关是组织在面对突发性危机事件时,为了保护组织的形象、声誉和利益,通过有效的策略和手段进行管理和应对的一项重要工作。危机公关涉及到多个层面,包括预防、响应、恢复等多个阶段,对于技术领域的公司来说,...
通过积极的心态调整、企业意义的明确阐述、组织积极性与韧性的提升,以及“四步法”策略的实施,企业家可以与团队一同面对危机,共寻解决之道,并在危机中发现新的机遇。创建高绩效团队是一个持续的过程,它需要企业...
**结构性危机**需要**结构性解决之道**。这意味着企业必须从根本上重新审视自身的商业模式和技术基础,寻找新的增长点。 #### 二、What:如何应对危机 ##### 危机中的要素分析 为了更好地理解危机,并找到解决...
2003年非典期间,XX车展遭遇的危机就是一个典型的例子,它揭示了如何有效进行会展危机公关处理的重要性。这篇文档分析了XX车展在非典肆虐时的应对策略,展示了危机管理在维护企业形象、降低损失以及转危为机中的关键...