1

私は以前にジェネリックを扱ったことがありません。今こそジェネリック クラスを作成するときです。そうしないと、コードの長さが長くなり、理解が難しくなります。

これは、Windows Azure にあるデータベースにレコードが挿入される方法です。

public class Item {
    public int Id;
    public String Text;
}

mClient を定義した同じアクティビティに、次のコードを追加します。

Item item = new Item();
item.Text = "Awesome item";
mClient.getTable(Item.class).insert(
        item, 
        new TableOperationCallback<Item>() { 
            public void onCompleted(
                    Item entity,
                    Exception exception, 
                    ServiceFilterResponse response
            ) { 
                if (exception == null) { 
                     // Insert succeeded 
                } else { 
                    // Insert failed 
                } 
            } 
        });

Windows Azure にあるデータベースで挿入、削除などの操作を行うためのジェネリック クラスを作成できません。

これは、windows azure リファレンスのリンクです (必要な場合):

http://dl.windowsazure.com/androiddocs/

次のコードを試しました:

public class WindowsAzureOperations<T> {

    T mT;
    MobileServiceClient mClient;
    Context mContext;

    public void insert(MobileServiceClient mClient, T tObject, final Context tmpContext) {

        this.mClient = mClient;
        mT = tObject;
        mContext = tmpContext;

        this.mClient.getTable(mT.getClass()).insert(mT,  // error in this line
                new TableOperationCallback<T>() {

                    public void onCompleted(T entity, Exception exception,
                            ServiceFilterResponse response) {

                        if (exception == null) {

                        } else {

                        }
                    }
                });
    }
}

次のエラーが表示されます。

insert(capture#1-of ? extends Object, TableOperationCallback<capture#1-of ? extends Object>)型のメソッドMobileServiceTable<capture#1-of ? extends Object>は引数に適用できません(T, new TableOperationCallback<T>(){})

私を助けてください。前もって感謝します。

4

1 に答える 1