我想编写一些代码,可以在一个对象中切换两种模式。
一些额外的信息:
编译器应在编译时检查对象的正确用法(取决于模式),即不检查标志。
我已经非常努力了,但是我无法实现我的项目没有布尔标志,这是在任务中,所以请告诉我如何...
这里我的代码与女巫我不满意:
public class Person {
private String name;
private double salary;
private boolean isAdmin;
/*
* ...
*/
public Person(String name, double salary, boolean isAdmin) {
this.name = name;
this.salary = salary;
this.isAdmin = isAdmin;
}
public double getSalary() {
return this.salary;
}
public void setSalary(double salary) {
if (isAdmin) {
this.salary = salary;
}
}
public void enableAdminMode() {
isAdmin = true;
}
public void disableAdminMode() {
isAdmin = false;
}
}
答案 0 :(得分:1)
创建一个没有二传手的ReadOnlyPerson
Person extends ReadOnlyPerson
。
然后通过instanceof
检查对象是否可写。