0
public class ResultContainer<T implements java.io.Serializable>
implements java.io.Serializable{
 int errorCode;
 T result;
 /* ... Few Other variables ... */
}

このコードの何が問題なのか、基本的に、実際の結果と他の情報を含むすべての結果を格納するためのジェネリック型 (ラッパーなど) が必要です。ここでは、実際の Result クラス (つまり、ここでは「T」) と ResultContainer クラスの両方をシリアライズ可能にする必要があります。

どうすればいいですか?

4

4 に答える 4

3

ジェネリックにインターフェイスがある場合でも、 extends キーワードを使用する必要があります。ジェネリックでimplementsキーワードを使用しないでください。

public class ResultContainer<T implements java.io.Serializable>
implements java.io.Serializable{

する必要があります

public class ResultContainer<T extends java.io.Serializable>
implements java.io.Serializable{
于 2012-11-05T23:16:28.977 に答える
3

以下を使用する必要があります。

public class ResultContainer<T extends java.io.Serializable>
于 2012-11-05T23:16:57.937 に答える
1

あなたは書く必要があります

public class ResultContainer<T extends java.io.Serializable>

インターフェイスのメソッドを継承するため、実装は継承と見なされます。

于 2012-11-05T23:17:58.157 に答える
0

Just a simple mistake... you have to say extends instead of implements in the generic-type-constraint... a but of a language-kludge if you ask me ;-)

import java.io.Serializable;

public class ResultContainer<TResult extends Serializable> implements Serializable
{
    private static final long serialVersionUID = 1L;
    int errorCode;
    TResult result;
}

It might pay you to review the generics tutorial right now, just to brush up your skills, as I presume you'll be using generics pretty extensively in this project.

Going through a tut is a lot quicker than asking all-those-fiddly-facts individually online.

Cheers. Keith.

于 2012-11-05T23:26:33.767 に答える