任务是:
修改所有名字以字母后半部分字母开头的工人的奖金。
class Worker that extends Employee
{
public Worker(String name, int yOfEmp, int salary, Manager boss){
super(name, yOfEmp, salary,boss);
boss.addEmployee(this);
}
public float getBonus(Employee emp){
Random rand = new Random();
float proc = rand.nextFloat();
return emp.getSalary() * proc;
}
public float setBonus(Employee e, float proc){
float newProc = proc;
return e.getSalary() * proc;
}
@Override
public String toString() {
return super.toString();
}
}
class RegWorker extends Worker
{
}
class Main
{
public static void main(String[] str) {
Manager bill = new Manager("Bill", 2010, 2549, null);
Manager steven = new Manager("Steven", 2011, 2100, bill);
Trainer jerry = new Trainer("Jerry", 2014, 800, steven);
RegWorker john = new RegWorker("John", 2010, 1000, bill);
RegWorker kate = new RegWorker("Kate", 2011, 1000, bill);
RegWorker sam = new RegWorker("Sam", 2013, 1200, steven);
final List<Worker> workers = Arrays.asList(jerry, john, kate, sam);
System.out.println("Modify bonuses for all regular workers:");
RegWorker reg = null;
List<RegWorker> regWorkers = workers
.stream()
.filter(w -> w.getClass() == reg.getClass())
.filter(w -> w.getName().charAt(0) < 'O')
.map(w -> w.setBonus(w, w.getBonus(w)+3))
.collect(toList());
}
我有这个 错误
原因:推理变量 T 具有不兼容的边界
等式约束:RegWorker
下限:Float