3

我正在研究一种编程语言,我需要将一个对象(如javascript中的var)转换为它应该是的变量类型。前任:

if(object == variabletypes.string)
{
//convert object to string
}
else if(object ==variabletypes.int)
{
//convert to integer
}

感谢您的时间,任何帮助将不胜感激。

4

4 回答 4

7

假设你有一个java.lang.Object,这是一个开始:

Object o = /* ??? */;
if (o instanceof String)
{
    String s = (String) o;
}
else if (o instanceof Integer)
{
    Integer integer = (Integer) o;
    int i = integer.intValue();
}

这里的“转换”主要是强制转换,假设对象已经具有正确的运行时类型,并且您不需要实际更改内部表示 - 例如,通过将 a 更改Stringintwith Integer#parseInt()

其他可能有用的方法(因为问题并不完全清楚)可能包括:

于 2012-09-03T20:18:13.770 回答
2
if(yourObject instanceof String){
    String str = (String)yourObject;
}
else if (yourObject instanceof Integer){
    Integer yourInt = (Integer)yourObject;
}
else if{
     System.out.println("My object is a class of: "+ yourObject.getClass().getName());
}
于 2012-09-03T20:21:16.937 回答
1

你可以做:

object.toString(); // Returns the string value of the object, if it exists.

http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

于 2012-09-03T20:18:23.143 回答
1

Java 中有几个可用的工具:

  1. 运营instanceof
  2. getClass().getName()调用,它将为您提供对象的实际类的名称作为字符串。

我不知道您所说的“转换”是什么意思,但这些是您可用的基本工具。

于 2012-09-03T20:20:29.637 回答