当我想启动Hibernate应用程序时,我总是得到类型安全警告.有没有一种方法可以摆脱这个没有使用@SuppressWarnings("unchecked")?
这是我的代码:
Configuration config = new Configuration();
config.addAnnotatedClass(Employee.class);
config.configure("hibernate.cfg.xml");
new SchemaExport(config).create(false, false);
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(config.getProperties()).build();
SessionFactory factory = config.buildSessionFactory(serviceRegistry);
Session session = factory.getCurrentSession();
session.beginTransaction();
Query q = session
.createQuery("SELECT e.empId,e.empName FROM Employee e");
@SuppressWarnings("unchecked")
List<Object[]> list = q.list(); <-- here is the problem!
Run Code Online (Sandbox Code Playgroud)
Oli*_*ier 17
Hibernate Session.list()返回一个普通的,原始的List.
将它转换为参数化集合(List<Object[]>此处)是完全合法的Java语法.但由于通用类型信息在运行时被清除,编译器将发出警告,告诉您它无法保证此转换实际上是有效的.所以这只是他告诉你的方式"嘿,你在这里玩火,我希望你知道你做了什么,因为我没有".
在这种特殊情况下,您无法做任何事情来消除此警告,但您可以通过使用@SuppressWarnings注释明确忽略它.
| 归档时间: |
|
| 查看次数: |
26118 次 |
| 最近记录: |