AI都深度思考了,人却不思考了...

打印 上一主题 下一主题

主题 1607|帖子 1607|积分 4821

在相识Fastjson编解码Integer数字时,曹小三同学让DeepSeek“深度思考”生成了一些testcase。下面是DeepSeek提供的JUnit5测试代码。
  1. import com.alibaba.fastjson.JSON;
  2. import com.alibaba.fastjson.JSONException;
  3. import org.junit.jupiter.api.Test;
  4. import static org.junit.Assert.*;
  5. public class IntegerCodecTest {
  6.     @Test
  7.     void testNullValue() {
  8.         String json = "{"num": null}";
  9.         Model model = JSON.parseObject(json, Model.class);
  10.         assertNull(model.num);
  11.     }
  12.     @Test
  13.     void testInvalidFormat() {
  14.         String json = "{"num": "abc"}";
  15.         assertThrows(JSONException.class, () ->
  16.                 JSON.parseObject(json, Model.class)
  17.         );
  18.     }
  19.     static class Model {
  20.         private Integer num;
  21.         // getter/setter
  22.     }
  23. }
复制代码
其中,小三在运行testInvalidFormat时,发现assertThrows不见效————junit断言JSON.parseObject(json, Model.class)会抛出JSONException,实际却没有抛出。
小三就反馈给DeepSeek。
DeepSeek开启了“一本正经地颠三倒四”模式。
小三把这个环境讲给同事赵小四,小四自信地解释道“这是Fastjson在兼容性方面做得好。”
小三、小四的师傅工匠李得知后,一眼发现了问题。原来,上面JUnit代码中,DeepSeek省略了Model类的 getter/setter,加上就好使了。并通过运行testInvalidFormat给两个小伙演示所抛出的异常stacktrace。
点击查看代码
  1. com.alibaba.fastjson.JSONException: parseInt error, field : num
  2.     at com.alibaba.fastjson.serializer.IntegerCodec.deserialze(IntegerCodec.java:101)
  3.     ...
  4.     at com.alibaba.fastjson.JSON.parseObject(JSON.java:588)
  5.     at com.emax.IntegerCodecTest.testInvalidFormat(IntegerCodecTest.java:36)
  6.     ...
  7.     at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
  8. Caused by: java.lang.NumberFormatException: For input string: "abc"
  9.     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
  10.     at java.lang.Integer.parseInt(Integer.java:580)
  11.     at java.lang.Integer.parseInt(Integer.java:615)
  12.     at com.alibaba.fastjson.util.TypeUtils.castToInt(TypeUtils.java:995)
  13.     at com.alibaba.fastjson.serializer.IntegerCodec.deserialze(IntegerCodec.java:93)
复制代码


小三、小四这才明白这个技能点:
Fastjson对于非Integer数字,是无法反序列化为Integer或int数字的,会抛出异常。


【结语】现在,AI 代码生成工具如 Copilot、Cursor 等,能基于简单提示快速输出代码片段,甚至完成复杂功能模块,其 “思考” 速度与覆盖范围令人惊叹。但不少程序员却因此过度依赖,遇到问题便直接让 AI 生成代码,不再主动分析需求、构思算法逻辑,也不深入理解代码背后的原理与设计模式。
比如开辟数据库连接模块时,不思考怎样优化连接池配置,直接利用 AI 生成的默认代码;设计复杂业务流程,不进行架构规划,盲目套用 AI 提供的办理方案。这不仅导致代码质量乱七八糟,也让程序员逐渐丧失独立编码与办理问题的能力。AI 虽强大,但它的 “思考” 是基于数据练习,无法替代程序员对业务的理解、对技能的创新探索。
当人放弃思考,就如同失去魂魄的躯壳,难以形成独特见解,创造力也会被逐渐磨灭。长此以往,人类将在思维的 “温床” 中丧失进步的动力。唯有保持主动思考,将 AI 作为辅助工具,才能真正发挥其价值,成为良好的开辟者。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表