我如何在java中将对象转换为int型?


当前回答

我猜你想知道为什么C或c++允许像操作数字一样操作对象指针,但在Java中不能以同样的方式操作对象引用。

Java中的对象引用不像C或c++中的指针……指针基本上是整数,你可以像操作其他int一样操作它们。引用是一种更具体的抽象,不能像指针那样被操作。

其他回答

@Deprecated
public static int toInt(Object obj)
{
    if (obj instanceof String)
    {
         return Integer.parseInt((String) obj);
    } else if (obj instanceof Number)
    {
         return ((Number) obj).intValue();
    } else
    {
         String toString = obj.toString();
         if (toString.matches("-?\d+"))
         {
              return Integer.parseInt(toString);
         }
         throw new IllegalArgumentException("This Object doesn't represent an int");
    }
}

正如你所看到的,这不是一个非常有效的方法。你只需要确定你所拥有的对象类型。然后以正确的方式将其转换为int型。

不可能做到。int不是一个对象,它是一个基本类型。你可以将它转换为Integer,然后获取int。

 Integer i = (Integer) o; // throws ClassCastException if o.getClass() != Integer.class

 int num = i; //Java 1.5 or higher

如果你确定这个对象是一个Integer:

int i = (Integer) object;

或者,从Java 7开始,你可以等价地写:

int i = (int) object;

注意,如果你的对象不是Integer,它会抛出ClassCastException,如果你的对象是null,它会抛出NullPointerException。

通过这种方式,您假设您的对象是一个整数(包装的整型),并将其拆箱为整型。

int是一个原语,所以它不能存储为对象,唯一的方法是将int考虑/装箱为整数,然后存储为对象。


如果你的对象是一个String,那么你可以使用Integer.valueOf()方法将它转换成一个简单的int:

int i = Integer.valueOf((String) object);

如果对象不是一个包含整数的String对象,它可以抛出NumberFormatException异常。


资源:

自动装箱 原始数据类型

关于同一话题:

Java:自动装箱和强制转换有什么区别? 自动装箱:我可以这样写:Integer I = 0;而不是:Integer i = new Integer(0); 将Object转换为原始int

int[] getAdminIDList(String tableName, String attributeName, int value) throws SQLException {
    ArrayList list = null;
    Statement statement = conn.createStatement();
    ResultSet result = statement.executeQuery("SELECT admin_id FROM " + tableName + " WHERE " + attributeName + "='" + value + "'");
    while (result.next()) {
        list.add(result.getInt(1));
    }
    statement.close();
    int id[] = new int[list.size()];
    for (int i = 0; i < id.length; i++) {
        try {
            id[i] = ((Integer) list.get(i)).intValue();
        } catch(NullPointerException ne) {
        } catch(ClassCastException ch) {}
    }
    return id;
}
// enter code here

这段代码说明了为什么ArrayList很重要,以及为什么要使用它。简单地从Object转换int。可能会有帮助。

参考代码:

public class sample 
{
  public static void main(String[] args) 
  {
    Object obj=new Object();
    int a=10,b=0;
    obj=a;
    b=(int)obj;

    System.out.println("Object="+obj+"\nB="+b);
  }
}