Kotlin.run作用域函数报错method 'void <init>()' not found问题排查
报错原因
- 无效的导入声明:你编写的是.kts脚本,没有在脚本开头声明
package Visitor的前提下,所有脚本内定义的类都归属默认包,而非以脚本文件名Visitor作为包名,开头的import Visitor.HtmlElement.*系列导入完全错误,会导致类型匹配异常。 - 执行顺序错误:Kotlin脚本严格按从上到下的顺序执行代码,你把
main()调用放在了main函数、所有业务类定义的前面,执行调用时相关的类、方法还未加载完成,自然会报找不到方法的错误。 - 你的初步推测是错误的,
run作用域函数的使用没有任何问题,也不是本次报错的诱因。
修复方案
- 删掉脚本开头所有
import Visitor.xxx的导入语句,脚本内部定义的类无需额外导入即可直接引用。 - 把
main()调用移到整个脚本的最后一行,保证执行时所有依赖的类、函数都已完成定义。
修改后的脚本可正常运行,输出收集到的所有链接、图片地址列表。
内容的提问来源于stack exchange,提问作者tom55
相关产品推荐
相关产品推荐

