发布网友 发布时间:2022-04-23 23:11
共4个回答
热心网友 时间:2022-05-07 21:56
Student和Gener都是java的类,而且Student必须是Gener的一个子类,(Student)Gener是把类Gen二强制转换成Student类
热心网友 时间:2022-05-08 00:49
如果没有理解错的话,可能是强制类型转换的,,Student是一个类之类的,或者是枚举之类的。
如果你想别人很好的理解你的问题,那么你就需要把Student和gener的前半段内容给表示出来的。追问上面的问题中Student是一个自定义class类型内部就是一些基本字段,相对完整的代码段是:
GenericClass gener=new GenericClass() //GenericClass为泛类型若不给T传值,则默认为object。
gener.setGeneric(new Student("20040501212","王平","女")) //setGeneric,Generic的set方法;
Student student1=(Student )gener.getGeneric();
(Student )gener这样的写法合规吗?代表什么意思?这种写法和object类有关吗?谢谢!
追答如果GenericClass 是Student的派生类的话,这样做是没有问题的,如果不是的话,这样是会有问题的,因为他们属于不同类型。
如果你是想获得setGeneric(new Student("20040501212","王平","女")) 的值的话,那么你后面写的东西是有问题的,Student student1=(Student )gener.getGeneric();不应该这样写,因为()与.的优先级一样,但是结合顺序是从左往右,应该这样写,Student student1=(Student )(gener.getGeneric());这样就可以得到你刚才输入的("20040501212","王平","女")。即是说相当于把student类作为了GenericClass 泛型类的泛型值输入的。
热心网友 时间:2022-05-08 02:40
完全支楼上,一般这种都是强制转换。