if(lgrole.equals("管理员")){ selectCourse.setVisible(false); teacherinfoOp.setVisible(false); stuInfoOp.setVisible(false); recordop.setVisible(false); } if(lgrole.equals("老师")){ majorOp.setVisible(false); classop.setVisible(false); teacherOp.setVisible(false); studentOp.setVisible(false); courseop.setVisible(false); stuInfoOp.setVisible(false); selectCourse.setVisible(false); mIshowrecord.setEnabled(false); } if(lgrole.equals("同学")){ majorOp.setVisible(false); classop.setVisible(false); teacherOp.setVisible(false); studentOp.setVisible(false); courseop.setVisible(false); teacherinfoOp.setVisible(false); mIaddrecord.setEnabled(false); mIselectrecord.setEnabled(false); }
这段代码是用来控制用户权限的。根据用户的角色("管理员"、"老师"或"同学"),不同的菜单项和按钮会被设置为可见或不可见状态。这样可以确保用户只能访问其具备权限的功能,保证系统的安全性和完整性。具体来说:
- 如果用户角色为"管理员",则所有菜单项和按钮均可见;
- 如果用户角色为"老师",则部分菜单项和按钮会被设置为不可见状态,如专业管理、班级管理、教师管理、学生管理、课程管理、学生信息管理、选课操作等,同时,某些功能如查看成绩记录也会被禁用;
- 如果用户角色为"同学",则与"老师"角色相同的菜单项和按钮会被设置为不可见状态,同时,某些功能如添加成绩记录、查看成绩记录、学生信息管理、选课操作等也会被禁用。
busiType="" ;"".equals(busiType)==false
这个表达式的值为 true。
首先,busiType 被赋值为空字符串 "",即一个长度为 0 的字符串。
然后通过 "".equals(busiType) 来比较 busiType 和空字符串 "" 是否相等,这个表达式的值为 false,因为 "".equals("") 的结果为 true,而 busiType 的值为 "",不等于 ""。
最后通过 ! 运算符取反,得到的值为 true。
为什么`f1.equals(f2)`会返回`false`?
当你使用 f1.equals(f2)
来比较两个 F1
类型的对象 f1
和 f2
的相等性时,如果它们不具有相同的实例变量值或对象状态,即使它们是同一个类的实例,也可能返回 false
。在 Java 中,equals()
方法默认的行为是基于对象引用的,即它比较的是两个引用是否指向同一个内存地址,而不是它们的内容是否相同。
举个例子,假设 F1
是一个自定义类,它的 equals()
方法没有重写,那么当 f1
和 f2
是两个不同的 F1
对象实例,即使它们的数据属性相同,equals()
也会返回 false
,因为它们在内存中的位置不同。
如果你想要按照数据属性进行比较,你应该在 F1
类中显式地覆盖 equals()
方法,并实现内容相等性的判断逻辑。这样,调用 f1.equals(f2)
才会返回 true
当且仅当两个对象的内部状态(数据属性)完全一致。
相关推荐















