是否可以将通用对象转换为字符串之类的东西?
我认为转换泛型类似于普通的对象转换,例如:
public String tempString;
public E genericObject;
tempString = ((String) genericObject);
但是,在编译时我仍然得到类型不兼容的错误。
required: String
found: E
最佳答案
你可以做你想做的,但你需要先通过另一个转换:
public String tempString;
public E genericObject;
tempString = (String) ((Object) genericObject);
问题是你不能在层次结构中“侧向”转换,你只能向下转换。也就是说,您可以从 Object
转换为 String
,但不能从 Number
转换为 String
。
请注意,如果 E
确实不是字符串,您将得到 ClassCastException ,但是,如果您只是在您知道 E
确实是一个字符串的情况下这样做,那么您会没事的。
关于java - 类型转换通用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19349925/