투케이2K

302. (java/자바) [유틸 파일] callHashMapKeyValue : 해쉬맵 key , value 값 조회 콜백 (callback) 메소드 본문

Java

302. (java/자바) [유틸 파일] callHashMapKeyValue : 해쉬맵 key , value 값 조회 콜백 (callback) 메소드

투케이2K 2023. 1. 6. 18:11
반응형

[개발 환경 설정]

개발 툴 : Eclipse

개발 언어 : Java

 

[소스 코드]

 

    // TODO [SEARCH FAST] : [CallBack] callHashMapKeyValue : 해쉬맵 key , value 값 조회 콜백
    static class callHashMapKeyValue {

        /**
         * // -----------------------------------------
         * [callHashMapKeyValue 클래스 설명]
         * // -----------------------------------------
         * 1. 해쉬맵 key , value 값 조회 콜백 반환
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         * HashMap map = new HashMap();
         * map.put("name", "twok");
         * map.put("age", 29);
         *
         * new C_Util.callHashMapKeyValue().setCallBack(new C_Util.callHashMapKeyValue.CallBack() {
         *       @Override
         *       public void onMessage(String key, String value) {
         *             // TODO Auto-generated method stub
         *             System.out.println("key = " + key + " / " + "value = " + value);
         *       }
         * }, map);
         *
         * // -----------------------------------------
         * 3. 리턴 데이터 : key , value
         * // -----------------------------------------
         * */

        // [내부 인터페이스 정의 실시]
        interface CallBack {
            public void onMessage(String key, String value);
        }

        // [전역 변수 선언 실시]
        CallBack callback;

        // [클래스 생성자 초기화 실시]
        public callHashMapKeyValue() {
            this.callback = null; // [초기화]
        }

        // [콜백 지정 메소드 정의 실시]
        public void setCallBack(CallBack callback, HashMap map) {
            this.callback = callback; // [매핑]

            // [로직 처리 실시 >> excute 호출]
            try {

                if (map != null && map.isEmpty() == false && map.size()>0 && map.keySet().size()>0){
                    Set set = map.keySet();
                    Iterator iterator = set.iterator();
                    while(iterator.hasNext()){
                        String key = (String) iterator.next();

                        // [excute 반환]
                        this.excute(key, String.valueOf(map.get(key)));
                    }
                }
                else {
                    // [excute 반환]
                    this.excute("ERROR", "ERROR");
                }
            }
            catch (Exception e){
                e.printStackTrace();
            }
        }

        // [콜백 실행 메소드 정의 실시]
        public void excute(String key, String value) {

            // [인풋으로 들어온 데이터를 그대로 CallBack 인터페이스 onMessage 메소드로 전달]
            this.callback.onMessage(key, value);
        }
    }

 


 

반응형
Comments