The method setAttribute(String, Object) in the type ServletRequest is not
applicable for the arguments (String, int)
我需要int型的作为计算器的结果result,request.setAttribute("result", result);
有说“你用 JDK 1.5 或以上的版本就行了。如果你用的已经是 JDK 1.5 或以上的版本,那可以把 IDE 中的编译级别调至 1.5 或 1.6。”可是我没找到IDE 在哪修改
CalActionForm caf=(CalActionForm)form;
int value1=caf.getValue1();
int value2=caf.getValue1();
String flag=caf.getFlag();
int result=0;
Integer re = new Integer(result);
try{
if("+".equals(flag)){
result=value1+value2;
}else if("-".equals(flag)){
result=value1-value2;
}else if("*".equals(flag)){
result=value1*value2;
}else if("/".equals(flag)){
result=value1/value2;
}
request.setAttribute("result", re);//在request对象中加入名为result的属性并附值为
return mapping.findForward("success");
}catch(Exception e){
e.printStackTrace();
}
return mapping.findForward("error");
}
MyEclipse,请问这错误咋解决?请高手指点request.setAttribute("result",result);
答案:3 悬赏:80
解决时间 2021-11-09 07:49
- 提问者网友:不懂我就别说我变
- 2021-11-08 10:44
最佳答案
- 二级知识专家网友:我叫很个性
- 2021-11-08 12:20
你可以使用String ,String.valueOf(result),然后在 自己转
全部回答
- 1楼网友:懂得ㄋ、沉默
- 2021-11-08 14:07
把你的result由int修改成Integer。就可以了,一样可以实现你想要的功能。
request.setAttribute("result", result);第二个参数必须是对象类型才可以的。
所有你按照我说的修改就可以了。
- 2楼网友:丢不掉的轻狂
- 2021-11-08 13:28
因为这里的attribute只能是存一个对象.你直接存一个int基本类型,它的方法重载里没有.
你看它的提示:The method setAttribute(String, Object) in the type ServletRequest is not
applicable for the arguments (String, int)
翻译过来就是:在request.setAttribute(String, Object)的方法里,不能适用于你现在用的(string,int).
因为object是一切类的基类,所以只要是对象都可以作为object往这里存.而int,double,char,boolean这些,都是基本数据类型,它们不是对象.
解决方法:用Interger类型作为参数.这是 int的类的形式.和int大同小异,例如定义一个为5的变量:
int a = 5;
Integer b = new Integer(5);
---------------------你的代码的修改方案----------------
Integer result = new Integer(0);
```````````` //处理result部分代码
request.setAttribute("result", result);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息