这是个及其离谱的地方
原因在于在做软件构造试验、编写java程序过程中
发现自己的equal怎么也判定不成功:代码片段如下
for(Vote<Proposal> v:votes){
for(VoteItem<Proposal> vi:v.getVoteItems()){
if(vi.getVoteValue().equals("支持")) {//只统计支持票
m.put(vi.getCandidate(), m.get(vi.getCandidate()) + Voters.get(v.getVoter()) * type.getScoreByOption(vi.getVoteValue()));
}
}
}
百思不得其解,debug过程显示判断语句为false!
当我仔细的翻看了equals()源码以及复习了相关知识后,仍然不的解决
正当我准备放弃的时候,灵光一闪!想到了右下角的编码格式:
上图是我修改过的,原本GBK位置是IDEA默认的UTF-8
原因在于:老师使用eclipce编写的java程序默认用GBK编码(在刚把老师的代码框架复制过来时,使用IDEA就出现了乱码、编码警告,需要手动修改项目为GBK)
而本人的这段代码出现在自己新建的.java文件中,他默认是UTF-8编码,使得另一个GBK的java文件传递过来的字符串的比较不相等!
所以更改新建的项目右下角的编码选项也为GBK,代码运行成功!
淦!