内部定义接口

    public Map<String, String> mgetBuildName4wap(List<String> keys) {

        return hmgetBuildName(WAP_REDIS_BUILD_KEY, keys, new GetDataFromOtherWay() {

            @Override
            public Map<String, String> getFromOtherWay(List<String> notInCacheKeys) {
                Map<String, String> result = new HashMap<String, String>(notInCacheKeys.size());
                String groupIds = StringUtils.join(notInCacheKeys, ",");
                result.putAll(interfaceService.getBuildNameMapForWap(groupIds));
                return result;
            }
        });
    }

    public Map<String, String> mgetBuildName4client(List<String> keys) {
        return hmgetBuildName(CLIENT_REDIS_BUILD_KEY, keys, new GetDataFromOtherWay() {

            @Override
            public Map<String, String> getFromOtherWay(List<String> notInCacheKeys) {
                Map<String, String> result = new HashMap<String, String>(notInCacheKeys.size());
                JSONArray buildArray = new JSONArray();
                for (String key : notInCacheKeys) {
                    String[] city_build = key.split("_");
                    JSONObject build = new JSONObject();
                    build.put("cityId", city_build[0]);
                    build.put("buildId", city_build[1]);
                    buildArray.add(build);
                }
                result.putAll(interfaceService.getBuildNameMapForClient(buildArray.toString()));
                return result;
            }
        });
    }

    private interface GetDataFromOtherWay {
        public Map<String, String> getFromOtherWay(List<String> params);
    }

猜你喜欢

转载自wangqiaowqo.iteye.com/blog/2045767