今天和同事讨论一道面试题:“是否有办法禁用String的equals方法?”
有两个一下子就能想到的办法:
1,修改源码重新打包。
2,利用类加载器加载一个虚假的类。(此方法如果我没记错的话,应该是不可行的,java虚拟机上有详细介绍)
然后如果不用这两种办法,而是在代码级别是否可以解决呢?
我首先想到的就是是否可以利用String类在JVM中的class对象来解决,其实也就是反射机制。我在Method类里找到了一个setAccessible方法,尝试了下:
String test = "hello world!";
Method[] methods = String.class.getMethods();
for(Method method : methods) {
if(method.getName().equals("equals")) {
System.out.println(method.isAccessible());
method.setAccessible(false);
}
}
System.out.println(test.equals("hello world!"));
结果证明这个方法是不可行的,我查找了些资料,setAccessible其实是设置当JVM做反射时是否做安全检查,而不是该方法是否能够被访问。
我就此郁闷了,想不出还有什么方向可以考虑的。
求帮助。
分享到:
相关推荐
基于VS2008 编写,求解八数码难题。本程序为人工智能课程中的练习题目,目的在于熟悉各种收索方法。希望交流沟通,互相提高。
可调整大小的数独难题求解器,使用迭代蛮力算法,该算法将包含难题尺寸的文本文件作为输入,然后将数独难题本身添加为未解决的“空”正方形中的零,并迭代找到解决方案。 ,然后打印解决方案以及运行时。 由Andrea...
8拼图解算器使用堆(优先级队列)和A *搜索算法的8难题求解器该项目是普林斯顿大学Coursera的Algorithms I课程的一部分。 完整的作业规范可以在以下位置找到: : 8-puzzle是一款经典游戏,其中将图块1-8放置在3 x 3...
Perl难题求解器 输入大小:9x9字符1-9 16x16字符AP 25x25字符AY 36x36字符0-9,AZ 36x36网格适用于的当前字符集 要获得一种解决方案:./solve.plx 16x16_three_solutions 要获得每个解决方案,请使用“ -a”:./...
摩天大楼:摩天大楼难题求解器
数独使用BackTracking算法的数独难题求解器
daa-backtrack数独[Java]递归回溯数独难题求解器。
8拼图具有DFS,BFS,IDS,UCS,A *,IDA *,双向A *策略的8难题求解器,具有线性冲突水平函数。跑主要类是Puzzle.java,此文件中有一些初始状态的实例。 该文件中也有一个目标状态。8-拼图实例简单实例从1移到10 int...
数独解算器使用DLX算法的快速数独难题求解器演示页面参考
matlab广度优先算法代码BFS算法的8个难题求解器 这是解决8个难题的广度优先搜索算法。 该代码是matlab文件。 给定初始节点的可解性也被合并
八数码问题的详细的解答。附带源码可直接运行。
基于状态空间表示法的A*算法求解八数码难题
最初的难题假设所有人最初都在河的左侧,但是求解器可以求解任何给定的初始配置。 筏子一次最多只能搭载2人,只有母亲,父亲和警察知道如何操纵筏子。 如果没有母亲在场,父亲在处理女儿方面会遇到麻烦,同样,在...
使用Python和PyGame实现A *算法,以自动解决8难题。
它演示了使用A *算法解决第N个大小难题。用法环境搭建建议设置虚拟环境。 $ python3 -m venv venv$ source venv/bin/activate$ pip install pytest运行它设置好环境后,只需调用即可运行求解器$ python3 driver.py...
河内塔塔 这是解决三种不同语言的TOH的简单算法。
讲解了A*算法流程图和算法框图,并利用A*算法求解N数码难题,很好的体现了人工智能领域的启发式搜索算法思想.
跑步: 通过在Windows上按SHIFT + RIGHT按钮或在Linux上打开Terminal,打开dist/目录上的Command Prompt / PowerShell / Terminal,然后键入以下任意项ENTER : java -jar 8-puzzle.jar 1用于汉明 ...
该资源包用了BFS,DFS,一直代价,贪婪,A*算法求解八数码难题。其中包括一个设计UI界面的代码,实现了问题解决过程的可视化。
根据项目需求,我们实施了迭代加深A *算法,并创建了模式数据库作为可允许的启发式方法,以解决随机生成的可解15难题。 我们随机生成100个15-Puzzle实例,每个实例应用该程序对其求解10次,每次我们收集运行时间并...