본문 바로가기

카테고리 없음

[2] (자바/리플렉션) 값 비교를 통해 변수명 출력하기

자바에 관한 첫 게시물이다. 학부생수업때도 그렇고 지금 수강또한 그렇고 수업을 듣다 약간 엉뚱한 생각이 들때가 있다.

 

최근들어 생각한 그 엉뚱한 생각은 값 비교를 통해 어떠한 값이 아닌 변수명을 출력해 보자는 생각이였다.

 

import java.lang.reflect.Field;

class A {
          private int num1;
          private int num2;
          public A(int num1, int num2) {
                    this.num1 = num1;
                    this.num2 = num2;
                    }
          public int big() {
                    if(this.num1 > this.num2) {
                              return this.num1;
                    }else {
                              return this.num2;
                    }
          }
};
public class B {
          public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
                    A b = new A(3,4);
                    Class<?> c = A.class;
                    Field a[] = c.getDeclaredFields();
                    for(int i=0;i<a.length;i++) {
                              a[i].setAccessible(true);
                              if(a[i].getInt(b) == b.big()) {
                                        System.out.println(a[i].getName());
                              }
                    }
          }
}

 

이게 엉뚱한 생각을 코드로 작성하여 만든것이고 3,4라는 두개의 값을 넣어 big이라는 메서드를 통해 큰 값의 변수명을 출력하는 코드이다.

 

해당 코드에 대한 궁금증이 있다면 댓글을 써주시고 더 간결하며 효율적인 코드 또한 댓글로 써주신다면 너무나 고마울 것 같다.

 

아 그리고 오늘 넷플릭스로 본 영화가 있는데 어바웃 타임이라는 영화이다. 혹시라도 못보신분은 꼭 보시길 강추한다.

 

평범한 날 평범한 시간이 주는 무게를 다시금 생각하게 하는.. 내 인생이 나만의 인생이 아니였음을..

 

그냥 너무 괜찮고 시간이 아깝지 않던 그런 영화였다. 나는 그렇게 생각했다.

 

주말 모두 잘 보내고 좋은 시간이였기를 바라며 세번째 글은 내일 수업중 까먹을 만한 부분 또는 맘에 드는 코드를 가져와 작성할 생각이다.