Lists.新ArrayListの小さな穴
1951 ワード
ユーザーIDをリストストレージに変換し、最初に私が使った方法は:
クエリの結果が空のままであることが検出され、DEBUGはuserIdsがsize=0であることが検出されました.
リストのせいだったのか?新ArrayListには、2つのリロード方法があります.
私の呼び出しは次のnewArrayList(int size)メソッドに進み、リストの長さを初期化しただけです!
計画通りに最初の方法newArrayList(K...c)を歩くべきだ.
呼び出したコードを次のように変更します.
再度テストし、ユーザーデータを正常に返しました!
解析の理由は次のとおりです.
リロードメソッドの呼び出しの優先度:
a.先マッチングパラメータ個数
b.パラメータタイプの最適マッチング:直接所属クラス(newArrayList(int size)これが直接所属クラス)
c.直接所属するクラスが見つからない場合、親パラメータが見つかるまで、直感的に検索順は「パッケージクラス-」親-」インタフェースである.
d.アップシフトがまだ一致していない場合、可変パラメータリストを検索する(newArrayList(K...c)方法は可変パラメータリストに属する)
// ID
Integer userId = 120;
// id List
List userIds = Lists.newArrayList(userId);
// userIds
List userList = userService.findByIds(userIds);
クエリの結果が空のままであることが検出され、DEBUGはuserIdsがsize=0であることが検出されました.
リストのせいだったのか?新ArrayListには、2つのリロード方法があります.
public static List newArrayList(K... c) {
return new ArrayList(Arrays.asList(c));
}
public static List newArrayList(int size) {
return new ArrayList(size);
}
私の呼び出しは次のnewArrayList(int size)メソッドに進み、リストの長さを初期化しただけです!
計画通りに最初の方法newArrayList(K...c)を歩くべきだ.
呼び出したコードを次のように変更します.
List userIds = Arrays.asList(userId);
再度テストし、ユーザーデータを正常に返しました!
解析の理由は次のとおりです.
リロードメソッドの呼び出しの優先度:
a.先マッチングパラメータ個数
b.パラメータタイプの最適マッチング:直接所属クラス(newArrayList(int size)これが直接所属クラス)
c.直接所属するクラスが見つからない場合、親パラメータが見つかるまで、直感的に検索順は「パッケージクラス-」親-」インタフェースである.
d.アップシフトがまだ一致していない場合、可変パラメータリストを検索する(newArrayList(K...c)方法は可変パラメータリストに属する)