package edu.cn.neusoft.project.model.vo; /*用户持久化类*/ public class Worker { private Integer wid; private String username; private String password; public Worker() { } }出现了 java: edu.cn.neusoft.project.model.vo.Worker的 single-type-import 已定义具有相同简名的类型和java: 无法将类 edu.cn.neusoft.project.model.vo.Worker中的构造器 Worker应用到给定类型; 需要: 没有参数 找到: java.lang.String,java.lang.String 原因: 实际参数列表和形式参数列表长度不同的错误,如何修改?请给出相应代码
时间: 2024-02-17 09:04:26 浏览: 104
根据错误提示,我们可以看出问题出在创建 Worker 对象时的构造器参数上。应该是代码中有一个地方调用了这个构造器时没有传入任何参数,而这个构造器中又需要两个 String 类型的参数。
所以,我们需要在 Worker 类中添加这个构造器,并在调用这个构造器时传入正确的参数。可以按照以下方式进行修改:
```java
package edu.cn.neusoft.project.model.vo;
public class Worker {
private Integer wid;
private String username;
private String password;
public Worker() {
}
public Worker(String username, String password) {
this.username = username;
this.password = password;
}
}
```
添加了一个带有两个 String 类型参数的构造器,可以在创建 Worker 对象时传入用户名和密码。
使用这个构造器创建 Worker 对象的代码示例:
```java
Worker worker = new Worker("username", "password");
```
相关问题
package edu.cn.neusoft.project.controller; import edu.cn.neusoft.project.model.service.WorkerService; import javafx.concurrent.Worker; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller public class WorkerAction { @Autowired private WorkerService service; @RequestMapping("login.action") public String login(){ return"login"; } @RequestMapping("loginSuccess.action") public String loginSuccess(String username,String password){ boolean ret; ret = service.login( new Worker(username,password)); if(ret){ return"loginSuccess"; } return "login"; } @ResponseBody @RequestMapping("worker.action") public List<edu.cn.neusoft.project.model.vo.Worker> worker(Model model) { List<edu.cn.neusoft.project.model.vo.Worker> list = service.showAll(); Model list1 = model.addAttribute("list", list); // for(Worker worker : list){ // System.out.println(worker); // } return list; } @ ResponseBody @ RequestMapping("updateWorker. action" ) public void updateWorker( Worker worker){ System. out. println(" ---up" + worker); service . updateWorker ((edu.cn.neusoft.project.model.vo.Worker) worker); } @ ResponseBody @ RequestMapping (" deleteWorker. action") public void deleteWorker( Integer wid){ // System. out. println("--delt--"+ wid); service . deleteWorker(wid); } @ RequestMapping("regist. action" ) public String regist(){ return "regist"; } @ RequestMapping(" registSuccess. action" ) public String registSuccess(Worker worker){ service . regist((edu.cn.neusoft.project.model.vo.Worker) worker); return "login" ; } }哪里错了?请写出正确代码
看起来代码没有什么明显的语法错误。但是,有几个点需要注意:
1. 在updateWorker方法中,你需要将Worker转换为edu.cn.neusoft.project.model.vo.Worker类型,以便传递给service.updateWorker方法。你可以使用强制类型转换:(edu.cn.neusoft.project.model.vo.Worker)worker。
2. 在registSuccess方法中,你需要将Worker转换为edu.cn.neusoft.project.model.vo.Worker类型,以便传递给service.regist方法。你可以使用强制类型转换:(edu.cn.neusoft.project.model.vo.Worker)worker。
3. 在worker方法中,你已经将list添加到了model中,所以不需要再返回list了。可以直接返回null。
下面是修改后的代码:
```
package edu.cn.neusoft.project.controller;
import edu.cn.neusoft.project.model.service.WorkerService;
import edu.cn.neusoft.project.model.vo.Worker;
import javafx.concurrent.Worker;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class WorkerAction {
@Autowired
private WorkerService service;
@RequestMapping("login.action")
public String login(){
return "login";
}
@RequestMapping("loginSuccess.action")
public String loginSuccess(String username,String password){
boolean ret;
ret = service.login(new Worker(username,password));
if(ret){
return "loginSuccess";
}
return "login";
}
@ResponseBody
@RequestMapping("worker.action")
public void worker(Model model) {
List<edu.cn.neusoft.project.model.vo.Worker> list = service.showAll();
model.addAttribute("list", list);
// for(Worker worker : list){
// System.out.println(worker);
// }
}
@ResponseBody
@RequestMapping("updateWorker.action")
public void updateWorker(Worker worker){
System.out.println("---up" + worker);
service.updateWorker((edu.cn.neusoft.project.model.vo.Worker) worker);
}
@ResponseBody
@RequestMapping("deleteWorker.action")
public void deleteWorker(Integer wid){
// System.out.println("--delt--"+ wid);
service.deleteWorker(wid);
}
@RequestMapping("regist.action")
public String regist(){
return "regist";
}
@RequestMapping("registSuccess.action")
public String registSuccess(Worker worker){
service.regist((edu.cn.neusoft.project.model.vo.Worker) worker);
return "login";
}
}
```
http://hw.neusoft.edu.cn/hw/exercise/exercise.do?eid=30649#:~:text=%E4%BC%98%E5%85%88%E7%BA%A7%E4%B8%BA2%E3%80%816%E3%80%8114%E3%80%8118%E3%80%8121%E3%80%8122%E7%9A%84%E4%BB%BB%E5%8A%A1%E5%A4%84%E4%BA%8E%E5%B0%B1%E7%BB%AA%E6%80%81%EF%BC%8C%E9%82%A3%E4%B9%88RdyGrp%E7%9A%84%E5%80%BC%E5%BA%94%E8%AF%A5%E4%B8%BA%EF%BC%88%EF%BC%89
根据题目描述,优先级为2、6、14、18、21、22的任务处于就绪态,那么对应的位应该被置为1,其他位为0。根据优先级的定义,优先级为n的任务在OSRdyTbl中的位置为n/8,即第n/8个元素,而在该元素的二进制表示中,优先级为n的任务所在的位为n%8。因此,可以得到OSRdyTbl的值为00000000 00000000 00000100 00100000 00000010 10000001,对应到16进制表示为0x04002081。
根据OSRdyTbl的定义,OSRdyGrp的值应该等于OSRdyTbl中所有位的或运算结果,即OSRdyGrp = OR(OSRdyTbl[0], OSRdyTbl[1], OSRdyTbl[2])。根据上面得到的OSRdyTbl的值,可以得到OSRdyGrp的值为00100010 10000001,即选项B。因此,答案为B。
阅读全文