小编M21*_*1B8的帖子

在Java中转换泛型类型(例如T value =(T)inputParam)

我有一个非常简单的问题,但似乎没有人回答过它.

我需要从一个对象转换为泛型类型T.这样的东西.

T值=(T)param;

这是我的示例代码.

public class App {
  public static void main(String[] args) {
      MyGeneric<Double> myGeneric = new MyGeneric();
      Object obj = myGeneric.getValue("12.45");
  }
}

public class MyGeneric<T> {
  public T getValue(Object value) {
      return (T) value;
  }
}
Run Code Online (Sandbox Code Playgroud)

我有一个类的泛型类,以及一个接收Object作为参数并返回相同对象的方法.

我希望我的班级自动从"12.45"转换为双值12.45.但是,我的班级什么也没做.最后,变量"obj"中的值仍然是String.

我的问题是如何实现我想要的.我将字符串"12.45"发送到我的方法getValue()的原因是因为该数据不是由我控制的.外部应用程序需要使用我的泛型类,并且由于某种原因,它们发送值为"12.45"的字符串表示形式.所以我的班级可以处理整数,浮点数,双精度或任何东西.

java generics casting

0
推荐指数
1
解决办法
1051
查看次数

标签 统计

casting ×1

generics ×1

java ×1