私は以前にジェネリックを扱ったことがありません。今こそジェネリック クラスを作成するときです。そうしないと、コードの長さが長くなり、理解が難しくなります。
これは、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>(){})
私を助けてください。前もって感謝します。