如何将“对象变量”赋给整数变量

时间:2011-11-29 13:46:39

标签: java types

我需要用Java构建一个程序,而我却不知道它。

我有一个存储在对象变量中的整数值。 我想将值赋给另一个整数变量。但我找不到将对象转换为整数的方法......

请你帮忙解决这个问题.. 提前谢谢..

这是我的代码:

public class Bank extends unicastRemoteObject implements BankInterface  
{  

String[] columnNames = {"Account","Balance"};  
Object[][] data = {{"a",10,},{"b",20}};  

public Bank() throws RemoteException { //constructor  
}  

public int getRowCount() { // number of accounts  
  return data.length;  
}  

public Object getValueAt(int row, int col) { // returns the value of the cell   
    return data[row][col];  
}  


public void deposit(int account, int amount) throws RemoteException {     
       // work Description:   
       // find the tuple by searching about the account number  
       // add the amount to balance..  
       // conversions are needed     

     Object accnum;   // to store the account number in. *string*
     Object balancevalue; // to store the balance in. *integer*  
     for ( int i=0 ; i<=getRowCount() ; i++)
             balancevalue = getValueAt(i,2)); // assign the current balance value.. 
             accnum = getValueAt(i,1); // assign the account number..
             int a = 0; // we will assign the integer type of accnum to a.
             int b = 0; // we will assign the integer type of balancevalue to b.
             if( a == account ) { // we find the account number.  
                 b= b + amount ;  // add the amount to the balance.
                 // we need to change the integer "b" into Object to store it in Data[i][2]. 
} 
}   

5 个答案:

答案 0 :(得分:2)

intObject

int b = 10;
Object o = new Integer(b);

您可以将int打包成IntegerObjectObject的子类。

intObject o = new Integer(10); int b = (Integer) o;

o

您可以通过将Integer投回Integer来检索该值。然后,JVM将隐含地将int转换回{{1}}。

答案 1 :(得分:2)

Object[][] data之类的东西是非常糟糕的设计。相反,您应该有一个类Account,其中包含字段accountNumberbalance以及适用的类型。然后你有一个List<Account>,一切都很干净,类型安全,getValueAt()方法变得不必要。

答案 2 :(得分:1)

您的数据数组已存储对象类型 - 帐号为String,balance为Integer(原语int的Object包装器)。在存款方法中,您需要将帐号String解析为int值,并从Integer中获取余额的原始int值。

以下是如何在您显示的代码中进行转换的示例。

 for ( int i=0 ; i<=getRowCount() ; i++)
         Integer balancevalue = (Integer)getValueAt(i,2));
         String accnum = (String)getValueAt(i,1);

         int a = Integer.parseInt(accnum); // parse String to int
         int b = balancevalue.intValue();  // get primitive value of Integer wrapper

         if( a == account ) { // we find the account number.  
             b= b + amount ;  // add the amount to the balance.

             // create new Integer (is an Object)
             Integer newBalance = new Integer(b);

             // store in the data array
             data[row,2] = newBalance;

对于最后一步 - 从int转换为Integer以存储在数据数组中 - 您可以依赖自动装箱而不是显式创建Integer包装器。所以最后两行代码可以替换为:

             // store in the data array
             data[row,2] = b;

答案 3 :(得分:0)

您可以使用Integer对象,它是int基本类型的包装器。

答案 4 :(得分:0)

只做

Data[i][2] = b; 

自动拳击应该有效。

如果您使用的是旧版本的java,则可以

Data[i][2] = Integer.valueOf(b);