的任务是:推理variabe T有不兼容的界限,而使用.collect(toList())
其名称从字母表下半年字母开头,所有工人修改的奖金。
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());
}
我有了这个 error
原因:推论变量T有不兼容的界限
等式约束:RegWorker
下界:浮法
有太多的代码,它也很奇怪:'reg.getClass()'注定要失败,用'NullPointerException'。 – Tunaki