java - 类型转换通用

标签 java generics casting

是否可以将通用对象转换为字符串之类的东西?

我认为转换泛型类似于普通的对象转换,例如:

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/

相关文章:

java - 如何在jna中获取指向结构体数组的指针

java - 如何创建 jabber/XMPP 代理/日志服务?

c# - 将泛型类转换为其非泛型基类

c# - 是否收集了 MakeGenericType/泛型类型的垃圾?

C# 转换与解析

c# - 将HexNumber转换为字符串的字符

java - 删除File后FileOutputStream该怎么办

java - 是否可以通过查找来控制非颜色字段的值?

java - 在二维数组中查找最大值的通用方法

java - Groovy/Java 可以隐式转换为子类(或具有自定义隐式转换)吗?