You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Java调用无返回值方法报错:参数列表不匹配问题求助

问题排查与解决方案

嗨,我来帮你搞定这个方法调用的错误问题~

错误原因分析

你遇到的编译错误逻辑很清晰:你定义的saveInfo方法要求必须传入一个View类型的参数,但你在onClick事件里调用它时,没有传任何参数,导致实际调用的参数列表和方法定义的参数列表不匹配,所以编译器直接报错了。

看你给出的saveInfo方法代码:

public void saveInfo(View view) { 
    // ... 方法内部逻辑
}

这里的View view是方法的必填参数,但你调用时写的是saveInfo();,完全没有传参,自然不符合方法的调用规则。

两种可行解决方案

从你的代码逻辑来看,saveInfo方法里并没有用到传入的view参数,所以推荐下面两种解决方式:

方案1:移除方法的View参数(更推荐)

既然方法内部根本用不到这个View参数,直接把它去掉就好,修改后的方法如下:

public void saveInfo() { 
    SharedPreferences sharedPref = getSharedPreferences("score", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putInt("totalScore", clickCounter);
    editor.putInt("yellowScore", yellowCounter);
    editor.putInt("magentaScore", magentaCounter);
    editor.putInt("cyanScore", cyanCounter);
    editor.apply();
}

这样你原来写的saveInfo();调用就完全合法了,不需要做任何改动。

方案2:调用时传入View参数

如果你之后可能会用到这个View参数(比如需要通过它获取控件相关信息),那就在调用时传入onClick方法里的v参数:

// 在onClick事件里修改调用代码
saveInfo(v);

这样参数列表就完全匹配了,代码也能正常编译运行。

小提醒

另外注意到你代码里的yellowCounter变量,在当前提供的代码片段里没看到定义,记得确保这个变量已经正确初始化过,不然可能会出现新的运行时错误哦~

内容的提问来源于stack exchange,提问作者owe123

火山引擎 最新活动