我试图通过使用点运算符在静态中调用非静态方法来进行添加。但是我收到了这个错误:"此方法必须返回int"。
类型的结果class Hello1 {
int pluss(int...v) {
int plus=0;
for(int x :v) {
plus=plus+x;
System.out.println(plus);
return plus;
}
}
}
public class Addition {
public static void main (String args[]) {
Hello1 h1=new Hello1();
h1.pluss(3,7,9,10);
}
}
答案 0 :(得分:1)
你把回报放在for循环中!
改变这个:
int pluss(int...v){
int plus=0;
for(int x :v)
{
plus=plus+x;
System.out.println(plus);
return plus;
}
}
对此:
int pluss(int...v){
int plus=0;
for(int x :v)
plus=plus+x;
System.out.println(plus);
return plus;
}
答案 1 :(得分:1)
这不是静态或非静态方法的问题。你可以做到这一点,你实际上在其中创建一个对象。
<强> This method must return a result of type int
强>
表示您错过了方法结尾处的return语句。
int plus(int..v){
//do whatever
//end
return plus
}
使用int result = h1.pluss(3,7,9,10);
来接收
答案 2 :(得分:0)
没有关闭花括号的问题,试试这个..
class Hello1 {
int pluss(int...v){
int plus=0;
for(int x :v){
plus=plus+x;
System.out.println(plus);
}
return plus;
}}
public class Addition{
public static void main(String args[]) {
Hello1 h1=new Hello1();
h1.pluss(3,7,9,10);
}}
答案 3 :(得分:0)
return
循环的第一次迭代中的for
,可能不是您打算做的 - 将return
移出其中:
int pluss(int...v) {
int plus=0;
for (int x :v) {
plus=plus+x;
System.out.println(plus);
}
return plus;
}
答案 4 :(得分:0)
return语句应该在for block之外,如下所示...查看下面的代码,它应该可以正常工作。
class Hello1
{
int pluss(int... v)
{
int plus = 0;
for (int x : v)
{
plus = plus + x;
System.out.println(plus);
}
return plus;
}
}
public class Addition
{
public static void main(String args[])
{
Hello1 h1 = new Hello1();
h1.pluss(3, 7, 9, 10);
}
}