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;
}
}