我想这个问题是不言自明的。这就是我正在做的事情:
Student student = Student.findStudent(s.getRegNumber(), (ClientSession)httpSesn);
findStudent() 方法返回 Student 类的对象。正如您所看到的,我正在将 HttpSession 对象转换为 ClientSession。可取吗?他们有什么隐藏的障碍吗?最佳实践是什么?
最佳答案
所以我假设您正在应用程序服务器中运行此代码,并且它是来自 servlet 的一行。由于 HttpSession 不一定继承自 Java EE 规范中的 ClientSession 或由 ClientSession 实现(除非我错过了一些基本内容),因此当您在不同的服务器(例如 Glassfish、Tomcat 或 JBoss 等)上运行代码时,代码可能会崩溃。
此外,如果您尝试模拟对象进行测试,模拟将实现 HttpSession 接口(interface),而不是 ClientSession 接口(interface)。这会给你一个 ClassCastException。
关于java - 在 Java 中是否建议将 HttpSession 转换为 ClientSession?最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1030704/