Jmetal返回问题名称字符串相等填坑

Jmetal返回问题名称字符串相等填坑

觉得有用的话,欢迎一起讨论相互学习~

我的微博我的github我的B站

  • 今天遇到一个特别的坑
        String problemname = problemSet_.get(taskID).getName().substring(0, 4);//例如CIHS       
  • 这里这样写返回的是一个字符串"CIHS"
  • 在下方,我使用"“号判断是否是这个问题以进入相应的子函数,过分的是”"并不能,关键是这种方式并不认定两者是相等的 (debug)状态显示程序未进入子函数
  • 这里个人认为不能使用等号,应该使用 “equal” 才是正确的
    Jmetal返回问题名称字符串相等填坑_第1张图片
  • 容易发现,目前才是正确的解法,并且程序进入其中 ,究其原因是因为"=="号比较的是地址,而"equal"比较的是值,即使值相等,但是很明显,两个字符串的地址是不同的。

以下是一段比较直观的解释,摘自于:
https://blog.csdn.net/weixin_42350212/article/details/80768041

Jmetal返回问题名称字符串相等填坑_第2张图片

你可能感兴趣的:(演化计算,Jmetal)