我需要用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].
}
}
答案 0 :(得分:2)
int
至Object
int b = 10;
Object o = new Integer(b);
您可以将int
打包成Integer
,Object
是Object
的子类。
int
至Object o = new Integer(10);
int b = (Integer) o;
o
您可以通过将Integer
投回Integer
来检索该值。然后,JVM将隐含地将int
转换回{{1}}。
答案 1 :(得分:2)
像Object[][] data
之类的东西是非常糟糕的设计。相反,您应该有一个类Account
,其中包含字段accountNumber
和balance
以及适用的类型。然后你有一个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);