2011-09-16 5 views
0

intタイプがJava Androidに見つからないと言う方法があるかどうかを知る必要があります。 私はアンドロイドアプリケーションを作成しています。これは実際にはIphone用に最初に書かれたもので、少し問題があります。ある時点で、メソッドを返すタイプのintが見つからないかどうかを確認しなければなりません。JavaのNSNotFoundと同等

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; 

、ここでどのように私はそれを使用しています:問題は、私はJavaでif(Id==0)として、それは私にIdが、これは私の方法であり、0

場合でも例外をスローだことなかったときということです。

int uuId = rpc.lUserIdByServerUserId(userId,newServerName); 
     Log.w("uuId","uuId : "+uuId); 
     if(uuId==0){ 
      // do some calculations 
     } 

+1

例外のスタックトレースを投稿できますか? – theisenp

答えて

2

lUserIdByServerUserId()ユーザーが見つからない場合は例外がスローされる可能性があります。

try { 
    int uuId = rpc.lUserIdByServerUserId(userId,newServerName); 
    Log.w("uuId","uuId : "+uuId); 
} 
catch (NotFoundException nfe) { 
    // do some calculations 
} 

例外をスローするには、lUserIdByServerUserId()を変更する必要があります。適切な例外がJavaライブラリにまだ存在しない場合は、独自のNotFoundExceptionクラスを定義する必要があります。

EDIT: はまた、@ mthpvgの答えに続く、あなたが発見し、テストされていない場合nullに設定することができIntegerタイプを返すようにlUserIdByServerUserId()を変更することができます。

Integer uuId = rpc.lUserIdByServerUserId(userId,newServerName); 
if (uuId == null) { 
    // Do some calculations 
}