我需要知道是否有办法说在Java Android中找不到int
类型。
我正在编写一个Android应用程序,它实际上是首先为Iphone编写的,并且有一点问题。在某些时候,我必须检查是否找不到返回方法的int
类型,并且是否真的进行了一些计算。问题是,当我在Java中使用if(Id==0)
时,即使Id为0,它也会引发异常。
这是我的方法:
private static int localUserIdByServerUserId(int serverUserId, String serverName){
dbHelper = new DataBaseHelper(context, "stampii_sys_tpl.sqlite", null, 1);
dbHelper.getDatabase();
String query = "SELECT id FROM users WHERE objectId = "+serverUserId+" AND serverName = '"+serverName+"' LIMIT 1";
ArrayList<String> result = new ArrayList<String>();
cursor = dbHelper.executeSQLQuery(query);
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
result.add(cursor.getString(cursor.getColumnIndex("id")));
cursor.moveToNext();
}
Log.i("result ","Result : "+result.toString());
Log.i("CURSOR ","Cursor Position : "+cursor.getPosition());
int uuid = Integer.parseInt(result.get(cursor.getColumnIndex("objectId")+1));
Log.w("localUSerByIdServerUserId","LocalUserByIdServerUserId result : "+uuid);
cursor.close();
return uuid;
以下是我如何使用它:
int uuId = rpc.lUserIdByServerUserId(userId,newServerName);
Log.w("uuId","uuId : "+uuId);
if(uuId==0){
// do some calculations
}
有什么建议吗?
答案 0 :(得分:2)
lUserIdByServerUserId()
可能会在找不到用户时抛出异常。
e.g。
try {
int uuId = rpc.lUserIdByServerUserId(userId,newServerName);
Log.w("uuId","uuId : "+uuId);
}
catch (NotFoundException nfe) {
// do some calculations
}
您需要修改lUserIdByServerUserId()
以抛出异常。如果Java库中尚不存在合适的异常,您可能还需要定义自己的NotFoundException
类。
编辑:
或者,从@ mthpvg的回答开始,您可以更改lUserIdByServerUserId()
以返回Integer
类型,如果找不到并进行测试,则可以将其设置为null
。
e.g。
Integer uuId = rpc.lUserIdByServerUserId(userId,newServerName);
if (uuId == null) {
// Do some calculations
}