13

それぞれの要素が異なるタイプのオブジェクトのセットである配列(または基本的にはテーブル)を持つことができるかどうか疑問に思っています。私はこのようなものを作りたいという意味です(構文が間違っていることはわかっていますが、私の考えを示したいだけです):

List<String, int, double, Date, ... , etc > list_name

これらすべての情報をデータベースに保存するときに、これらすべての情報がデータベースの同じエントリに含まれるようにするために、これを行っています。これは、これらすべてのデータを収集するためにさまざまなサイトからWebスクレイピングを行ったためです。つまり、リストでは、文字列はサイトAからのものであり、intはサイトBからのものである可能性があります。 、リストの特定の要素については、サイトAの文字列が欠落している可能性があり、他のデータはそこにあり、完全に問題ありません。)これらのデータを個別のリストに保存すると、データの不一致が発生する可能性があります。

今私の解決策は、ClassAと言うクラスを作成することです:

ClassA{

public String info1
public int info2
public double info3
..
..
public wtever info

}

そして、私はClassAのリストを持っています

これを達成するためのより良い方法があるかどうか疑問に思っていますか?

4

6 に答える 6

5

これらすべての情報をデータベースに保存するときに、これらすべての情報がデータベースの同じエントリに含まれるようにするために、これを行っています。

はい、すべての値を保持するクラスを作成することで、正しいことを実行しました。

また、すでに述べたように、List複数のデータベースの挿入/更新を実行する場合は、このオブジェクトを作成できます。

多くの永続化スキームは、個々のテーブルに格納されているデータを表すクラス( DAOと呼ばれる)の定義に基づいて動作します。アノテーションクラス(Hibernateなど)をサポートする永続性プロバイダーを使用すると、データベースとの対話を大幅に簡素化できます。このトピックをさらに詳しく調べることをお勧めします。

于 2012-10-11T08:46:09.413 に答える
3

List<java.lang.Object>Javaのすべてのクラスはのサブクラスであるため、simpleを使用できますjava.lang.Object。ただし、これはエラーが発生しやすく、注意して処理しないと、実行時にClassCastExceptionがスローされる可能性があります。あなたがList<ClassA>言ったように、正しいものになるでしょう。ClassAただし、設計するときは、すべてが正しく行われていることを確認してください。

于 2012-10-11T08:49:19.313 に答える
2

これらの異なるタイプのプロパティを保持するためのクラスを作成する方法は良いようです。次に、次のようなインターフェイスArrayListの実装を使用できます。List

ArrayList<ClassA> list = new ArrayList<ClassA>();

そして、簡単にデータを入力して操作できます。

データベース操作では、DAO(データアクセスオブジェクト)クラスとマッパークラスを使用して、データソースでの永続化操作を容易にすることをお勧めします。

于 2012-10-11T08:47:34.157 に答える
1

私も同じことをします。つまり、保存したいもののセットを表すオブジェクトを作成し(ドメインの概念が隠れているのではないでしょうか)、そのタイプのリストを作成します。

于 2012-10-11T08:46:42.283 に答える
1

できることは、すべてのクラスが拡張する抽象スーパークラスを作成し、そのリストを作成することです。このスーパークラスを拡張するクラスはすべて、同じリストに収まります。

コレクションを操作するときは、処理しているオブジェクトのタイプを確認してください。

public abstract class ClassA {
    // Empty
}

public class ClassB extends ClassA {
    // something something
}

public class ClassC extends ClassA {

}

public class main {
    List<ClassA> list.....
}
于 2012-10-11T08:43:31.970 に答える
0

Javaのすべての(節度のある真実)オブジェクトはから継承するためObject、必要なときにいつでもオブジェクトを記述List<Object>...してキャストできます。これには、さまざまなオブジェクトがどのクラスであるかを完全に制御する必要があることに注意してください。

于 2012-10-11T08:44:14.317 に答える