Java 泛型 TypeOf 返回 T

标签 java

public Object Convert(Class<T> Type) {
    if (Type == Integer.class) {
        return Integer.parseInt(DataInfo);
    } else if (Type == String.class ) {
        return DataInfo;
    } else if (Type == Double.class) {
        return Double.parseDouble(DataInfo);
    }
    return null;

}

还有其他方法可以做到这一点吗?

我只想做类似的事情:int X = Foo.Convert<int>();

它接受一个字符串并将其转换为 <Type> <-----那个。我尝试过:

public T Convert()
{
}

但我到处搜索,Java 没有 typeof 函数:S 基本上试图将用户的字符串转换为数据类型。

编辑..我问是因为在 C++ 中我通常这样做:

template <typename T>
inline T ToNumber(const std::string &Text){std::istringstream SS(Text); T Result; return (SS >> Result ? Result : 0);}

我想知道在 Java 中我是否可以做到这一点..我使用它的方式如下:

package test;

import java.io.*;
import java.util.Scanner;

public class Data<T> {
    private String DataInfo;

    public String ReadBuffer() throws IOException {
        BufferedReader Buffer = new BufferedReader(new InputStreamReader(System.in));
        return (DataInfo = Buffer.readLine());
    }

    public String ReadConsole() {
        Console Con = System.console();
        return (DataInfo = Con.readLine());
    }

    public String Read() {
        Scanner Reader = new Scanner(System.in);
        return (DataInfo = Reader.next());
    }

    public Object Convert(Class<T> Type) {
        if (Type == Integer.class) {
            return Integer.parseInt(DataInfo);
        } else if (Type == String.class ) {
            return DataInfo;
        } else if (Type == Double.class) {
            return Double.parseDouble(DataInfo);
        }
        return null;

    }
}

最佳答案

由于类型删除,这是完全不可能的。

最好让调用者传递 Class<T> .

关于Java 泛型 TypeOf 返回 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12701345/

相关文章:

java - 如何通过Java连接在Azure Cloud上运行的Dynamics CRM 2016实例?

javascript - 在javascript中增加日历日期

java - MySQL 和 JApplet(是的,另一个)

java - 使用对 Mongodb 集合的静态引用

java - 循环 AsyncTask 以获取 JSON 并将其作为对象存储在同一列表中

java - 如何从 java 程序启动 Hadoop、Accumulo 和 ZooKeeper?

java - ResultSet getObject(int, class) 与反射

java - 为什么加载图片时要使用getResourceAsStream?

java - Intellij 生成静态最终字段

java - 如何防止在 OrientDB 中的相同顶点之间创建重复边?