2016-04-17 5 views
0

クイック背景:Java Beanクラスはgetters/setter以外の機能を持つのが普通ですか?

私は以前のクラスのプロジェクトの1つを楽しい演習としてリファクタリングしています。プロジェクトはコース登録システムを作成し、.txtファイルをデータベースとして使用していました。私自身の練習として、私はSQLデータベースを使って作業する方法を学んできました。 lynda.comの動画を見て、私はApache ServerとmySQLデータベースを使用しているMAMPをダウンロードしてインストールしました。

このように、このプロジェクトの要件の1つは、コースのリストをアルファベット順に表示することでした。私は、Comparableを実装したCourse.javaクラスを持っていました。私はcompareTo(コースコース)を実装し、ArrayListでCollections.sort(coursesArrayList)を呼び出すことができました。 COURSE.TXTデータベースから行に

  1. 読む:

    は初期設定では、私のコードは、次の手順を実行しました。

  2. コースオブジェクトを作成してArrayListに挿入
  3. arraylistを呼び出します。

質問:

私はlynda.com動画でJavaビーンズについての学習やオンライン少し研究をしていたとして、それは私が同等とのcompareToを(実装する「従来型」であるかどうかを疑問視製)でJava Beanクラスそれが従来的でない場合は、どのようにJava Beanで構成されるArrayListをソートすることをお勧めしますか?

ありがとうございました!

+0

でただの古い方法をソートすることができますBY Column'ので、ご注文の問題はすべて解決されます。 – RiggsFolly

+0

うわー!それは十分に簡単でした!しかし、一般的に、Java Beanクラスはgetters/setter以上のものを持つのが普通ですか? – btbam91

+0

ソートされていない可能性のあるテキストファイルからデータを読み込み、このデータをソートして表示する必要があるため、compareTo()が必要です。しかし、データベース(MySQLや他のものなど)を使用する場合、select by orderを実行し、データをソートします。また、Beanを持っているときにはより良いHibernateまたはJPAを使用することができます。 –

答えて

0

JavaBeansクラスでComparableを実装することは、JavaBeans仕様には反しません。

しかし、あなたの割り当てにはその順序での印刷が含まれているからといって、タイトル順に基づいてComparableを実装しません。ほとんどの場合、コースにはIDがあり、それに基づいて並べ替えることが望ましい場合もあります。または従業員の数。

しかし、あなたはあなただけの `SELECT ... ORDERをデータベースを使用している場合はJavaBeanのこと、あなたのコースは

courses.sort(Comparator.comparing(Course::getTitle));   // by title 
courses.sort(Comparator.comparing(Course::getAttendantCount)); // by attendant count 

(これは、Java 8が必要です)

+0

メインの質問にお返事いただきありがとうございます! – btbam91

関連する問題