투케이2K

307. (RxJava) [Observable] just 사용해 [ Model Class 모델 클래스 객체 ] 생성자 만들기 및 subscribe 구독 결과 메시지 확인 본문

Java

307. (RxJava) [Observable] just 사용해 [ Model Class 모델 클래스 객체 ] 생성자 만들기 및 subscribe 구독 결과 메시지 확인

투케이2K 2023. 2. 23. 21:57
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

// -------------------------------------
// [로직 처리 실시]
// -------------------------------------
        try {
            
            /**
             * // -----------------------------------------
             * [코드 설명]
             * // -----------------------------------------
             * 1. just() : 가장 간단한 생성 방식으로 함수에 인자로 넣은 데이터를 그대로 차례대로 발행 (인자로 10개 까지 전달), 자동으로 onNext, onComplete 혹은 onError가 호출 됨
             * // -----------------------------------------
             * 2. Disposable isDisposed : 구독 연결 관계 확인 (true / false)
             * // -----------------------------------------
             * 3. Disposable dispose : 구독 연결 관계 끊기 (onComplete 이벤트가 정상 실행 시 별도로 호출할 필요 없음)
             * // -----------------------------------------
             * */


            // [Observable just 사용해 생성 실시 : 생성자]
            Observable<M_User> observable = Observable.just(
                    new M_User("투케이", 29, true),
                    new M_User("2K", 30, true)
            );


            // [Observer 옵저버 는 Observable 생성자 를 구독 (Subscribe) 해 데이터를 소비]
            observable.subscribe(
                    value -> {
                        Log.i("---","---");
                        Log.d("//===========//","================================================");
                        Log.i("","\n"+"[A_Test >> main() :: onNext()]");
                        Log.i("","\n"+"-----------------------------------------");
                        Log.i("","\n"+"[name :: "+String.valueOf(value.getName())+"]");
                        Log.i("","\n"+"-----------------------------------------");
                        Log.i("","\n"+"[age :: "+String.valueOf(value.getAge())+"]");
                        Log.i("","\n"+"-----------------------------------------");
                        Log.i("","\n"+"[sex :: "+String.valueOf(value.getSex())+"]");
                        Log.d("//===========//","================================================");
                        Log.i("---","---");
                    },
                    error -> {
                        Log.i("---","---");
                        Log.e("//===========//","================================================");
                        Log.i("","\n"+"[A_Test >> main() :: onError()]");
                        Log.i("","\n"+"-----------------------------------------");
                        Log.i("","\n"+"[error :: "+String.valueOf(error.getMessage())+"]");
                        Log.e("//===========//","================================================");
                        Log.i("---","---");
                    },
                    () -> {
                        Log.i("---","---");
                        Log.w("//===========//","================================================");
                        Log.i("","\n"+"[A_Test >> main() :: onComplete()]");
                        Log.w("//===========//","================================================");
                        Log.i("---","---");
                    });
            // */
        }
        catch (Exception e){
            e.printStackTrace();
        }









// -------------------------------------
// [Model 클래스 생성 실시]
// -------------------------------------
package com.example.javaproject;

import org.json.JSONObject;

public class M_User {


    /**
     * // --------------------------------------------------------------------------------------
     * TODO [클래스 설명]
     * // --------------------------------------------------------------------------------------
     * 1. 모델 클래스
     * // --------------------------------------------------------------------------------------
     * */





    /**
     * // --------------------------------------------------------------------------------------
     * // TODO [빠른 로직 찾기 : 주석 로직 찾기]
     * // --------------------------------------------------------------------------------------
     * // [SEARCH FAST] :
     * // --------------------------------------------------------------------------------------
     * */





    // -----------------------------------------------------------------------------------------
    // TODO [전역 변수 선언]
    // -----------------------------------------------------------------------------------------
    private static final String ACTIVITY_NAME = "M_User";

    private String name;
    private int age;
    private boolean sex;





    // -----------------------------------------------------------------------------------------
    // TODO [클래스 생성자 초기화]
    // -----------------------------------------------------------------------------------------
    public M_User(String name, int age, boolean sex){

        // [전역 변수에 매핑 실시]
        this.name = name;
        this.age = age;
        this.sex = sex;
    }





    // -----------------------------------------------------------------------------------------
    // TODO [개별 데이터를 확인 하기 위해 get 생성]
    // -----------------------------------------------------------------------------------------
    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }
    public boolean getSex(){
        return sex;
    }


} // TODO [클래스 종료]
 

[결과 출력]

 

D///===========//: ================================================
I/: [A_Test >> main() :: onNext()]
I/: -----------------------------------------
I/: [name :: 투케이]
I/: -----------------------------------------
I/: [age :: 29]
I/: -----------------------------------------
I/: [sex :: true]
D///===========//: ================================================


D///===========//: ================================================
I/: [A_Test >> main() :: onNext()]
I/: -----------------------------------------
I/: [name :: 2K]
I/: -----------------------------------------
I/: [age :: 30]
I/: -----------------------------------------
I/: [sex :: true]
D///===========//: ================================================


W///===========//: ================================================
I/: [A_Test >> main() :: onComplete()]
W///===========//: ================================================

 


 

반응형
Comments