我有这个带有重载和可选参数的函数:
protected void signIn() {
if (checkPlayServices()) {
...
}
}
private boolean checkPlayServices() {
GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();
int result = googleAPI.isGooglePlayServicesAvailable(this);
if (result != ConnectionResult.SUCCESS) {
if (googleAPI.isUserResolvableError(result)) {
googleAPI.getErrorDialog(this, result, PLAY_SERVICES_RESOLUTION_REQUEST).show();
}
else {
Toast.makeText(this, R.string.message_unsupported_device, Toast.LENGTH_LONG).show();
}
return false;
}
return true;
}
当没有params传递给它们时,这些函数做同样的工作(调用fn()),但由于这个错误,我无法调用此函数而没有传递给它的参数:
以下方法或属性之间的调用不明确......
答案 0 :(得分:2)
您只需要使用空参数创建方法:
public void fn(int a)
{
}
public void fn(string a)
{
}
public void fn()
{
//Your code goes here
}
只有当你没有将任何参数传递给fn()
时才会发生这个错误,很明显,因为编译器不会知道在那一点上要调用什么。所以你的可选参数毫无意义。