2016-05-11 21 views
-1

テキストファイルの行を文字列配列ではない配列に格納しようとしています。戻り値の型は(コンストラクタと私は、コードの他の部分で使用しますGET- /セット方法で「GO」という名前の別のクラスを作成しました。)GO-配列することになっているテキストファイルを文字列以外の配列に格納する

int rad = 0; 
GO [] list = new CD [rad]; 

public GO[] readFile(String filename) throws FileNotFoundException { 
    Scanner read = new Scanner (new File(filename)); 
    while (read.hasNextLine()==true){ 
     rad++; 
     read.nextLine(); 
    } read.close(); 

    read = new Scanner(new File(filename)); 
    for (int i=0;i<list.length;i++){ 
     //here the lines of the file should be stored in the "GO"array 
     // but the declaration cannot convert string to GO[] 
     list[i]=read.nextLine() 
+3

'== true'は論理的に冗長です。これは '* 1'や' + 0'のようなものです。 – Pshemo

+0

あなたの質問は? – gfelisberto

+0

編集:それは "GO []リスト=新しいGO [rad]"とされている –

答えて

-1

ます結果として得られたStringを解析し、その中からGOオブジェクトを構築する必要があります。これは、物事を清潔に保つための別の方法です。オブジェクトの変数の値を取得し、適切にセッターを使用します。

あなたのプログラムがファイルの内容を書いている場合、GOSerializeableを実装し、テキストを作成する代わりにオブジェクト自体の状態を保存/読み込みする方がよいでしょう。そうでなければ、上記はあなたの唯一の選択肢です。

+0

実際には、Javaの直列化は非常に肥大化しています。特定のクラスの詳細を永続化したい場合は、自分で作成する方がよいでしょう。シリアライゼーションは、未知のクラスをサポートすべき一般的なフレームワークを持っていて、そのサイズを縮小して移植性を向上させるJavaのシリアライズの代用品がある場合にのみ有効です。 – RealSkeptic

0
class GO<T>{ 
    private T ref; 

    public GO(T ref) { 
    this.ref = ref; 
    } 

} 

ジェネリックを使用するようにGOクラスを変更する必要があります。このアプローチでは、Go Arrayに値を追加できます。

list[i] = new GO(read.nextLine()); 

クラスをジェネリックに変更しました。任意のオブジェクトをコンストラクタに渡すことによってGoクラスのインスタンスを作成できます。

関連する問題