1

この質問は、SpringScaffoldingプロセスによって生成されたGWTフロントエンドでSpring3フレームワークを使用するという文脈からのものです。

質問1

以下のブロックについて2つの質問があります。1つは'newString []{key};'です。部。角括弧の直後に中括弧が付いていても大丈夫ですか?中括弧の後に中括弧を付けると、配列の初期化でエラーが発生しませんか?

質問2

また、このメソッドはDAOレイヤーで必要とされる順序で主キーフィールドを返すと述べていますが、このメソッドはObject[]とkeyValuesAsText[]で最大1つのキーを返すことができるようです。入力は文字列のみであるため、DAOオブジェクトのキーの配列を返すためにどのように拡張できるでしょうか。

これはstackoverflowに関する私の最初の質問なので、質問の質と質問の方法について提案をいただければ幸いです。

コード

/**
  * Returns the Primary Key field values in the order they are required by the DAO     
   layer to find by primary key
  * @param key
  * @return
  */
protected Object[] getPrimaryKeysFromGoogleKey(String key) {
    String[] keyValuesAsText = new String[] { key };

    Object[] keyValues = new Object[keyValuesAsText.length];
    keyValues[0] = new Integer(keyValuesAsText[0]);

    return keyValues;
}
4

1 に答える 1

1

質問1:

String[] keyValuesAsText = new String[] { key };

これは、Java の配列作成構文の 1 つです。もう1つは

String[] keyValuesAsText = { key };

この構文を使用すると、Java は同じ行で宣言されている変数の型に基づいて配列の型を推測します。

あなたが書く場合:

String[] keyValuesAsText;
keyValuesAsText = {key};

Java は配列の型を推測しないため、これは機能しません。この場合、次のように記述する必要があります。

String[] keyValuesAsText;
keyValuesAsText = new String[] {key};

コンパイラは変数の型に基づいて配列の型を推測できるため、これが優れた言語設計機能であるかどうかはわかりません。

質問2:

protected Object[] getPrimaryKeysFromGoogleKey(String key) {
    //creates an array with only one value so keyValuesAsText.length is always 1 
    String[] keyValuesAsText = new String[] { key };

    //sames as Object[] keyValues = new Object[1];
    Object[] keyValues = new Object[keyValuesAsText.length];

    //sets the first value of the keyValues array to the Integer.parseInt(key);
    keyValues[0] = new Integer(keyValuesAsText[0]);

    //the entire method could be replaced with the following line:
    //return new Object[] { new Integer(key) };    
    return keyValues;
}

常に 1 つの値 (キーから解析された整数) を持つオブジェクトの配列を返します。

于 2013-02-27T19:25:09.387 に答える