我再使用
List results = getHibernateTemplate().findByExample(instance);
这条语句的时候就产生了一个类似与以下warning的警告(下面那个是百度知道找的 懒的自己输入了-。-)
The return type List for findAll() from the type NetModeDaoHibernate needs
unchecked conversion to conform to List from the type NetModeDao
其实意思都是一样的,就是说getHibernateTemplate().findByExample(instance) 产生的是一个List
然后我前面是List 它需要一个转型才行。 虽然是个warning,不过看着特别不爽
我尝试了 类似与(List )getHibernateTemplate().findByExample(instance);
这样的各种方法都未果。
请问正经的转型方法是什么样子的呢?
[b]问题补充:[/b]
不用这么麻烦吧。。
这种应该是直接转型就行的,不用在建立数组放里面了 因为本身里面存放的就是就是
MovieTable类型 所以应该隐式转型即可了。
别的地方我都可以直接隐式转型,只有类似于这个地方
就是由函数返回的地方我不知道怎么设置隐式转型。
不过还是谢谢回答。
[b]问题补充:[/b]
//补充。。。。。
我知道aidiyuxin 你说的那些东西
我也知道加入@SuppressWarnings("unchecked") 这个可以忽略
我只是想知道一下怎么把这个函数向下转型成MovieTable 因为试了好几种方法都未果
呵呵
谢谢啦
[size=medium]呵呵,楼主客气了
大家一起讨论下咯
你最开始用的那个办法就是对的了
因为[/size]
[code="java"](List )getHibernateTemplate().findByExample(instance);[/code]
[size=medium]这样已经把List转化为List了
其实List的中的Object已经指定为MovieTable了
你可以这样看看的[/size]
[code="java"]List list
for(Object foo : list){
String className = foo.getClass().getClassName;
System.out.println(foo);
}[/code]
[size=medium]他打印出来的一定是MovieTable,只不过他的类型是jvm动态注入给Object
所以在编译期间是不知道他的类型的
[/size]
[size=medium]ps:
我比较常些这种,类似框架的东西,或者叫土框架,所以这些东西还是知道一点点的
呵呵,不知道这么说,你能不能明白,呵呵,说的不好,可以拍砖我[/size]
[code="java"]
List results = getHibernateTemplate().findByExample(instance);
List mts=new arrayList();
for(Object o:results)[
mts.add((MovieTable)o);
}
[/code]
不用楼上那样的
那么作没意义
和你楼主的做法是一样的
不要理会那个警告
那个警告的意思是
HibernateTemplate在query的时候返回的是个List类型的数据
可以直接转化成List,是没有问题的,因为类型是实例化的时候才指定的
所以在编译期间,编译器认为你这里可能有问题,没关系的
ps:
如果不想看黄线的话加个
[code="java"]@SuppressWarnings("unchecked")[/code]
吧