Programming

    TextView에 Layout_gravity 설정하는 법

    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) textView.getLayoutParams(); params.gravity = Gravity.CENTER; textView.setLayoutParams(params); 1번째줄. 해당 레이아웃에 있는 레이아웃 속성들을 얻어와서 2번째줄. 레이아웃 그래비티를 설정하고 3번째줄. 다시 레이아웃 속성을 설정하는 행위 첫번째 줄에서 형변환을 한 이유는 ViewGroup에서는 layout 속성을 설정 할 수 없기 때문이다. 비슷한 레이아웃으로 형변환하여 해당 레이아웃의 속성을 사용하는 형태로 진행한다. 다른 View들도 비슷하다.

    JAVA Exception 예외, 사용자 정의 예외처리 만드는법

    자바의 예외처리는 조금 특별하다. 사용자가 직접 예외를 만들 수도 있다. 간단하게 Exception을 상속받아서 사용자 정의 예외를 만들수 있다. Exception의 종류는 두 종류로 나뉜다, Checked Exception - 컴파일 타임에 체크, Unchecked Exception - RuntimeException 를 상속받아서 런타임에 체크 사용자 정의 Exception // 사용자 정의 Exception 클래스 public class CustomException extends Exception { public CustomeException(String message) { super(message); } } 예외 객체를 이렇게 만들어주고 Exception 실행부 public class MainExc..

    Comparable, Comparator를 이용한 객체간 크기 비교

    오늘은 객체 간 비교를 위한 인터페이스를 살펴보도록 하겠다. Comparable CompareTo() 재정의 이것은 같은 객체끼리 비교하는 것을 의미한다. 특히 기본 객체 자료형들은 이것을 상속받아 구현하였으며, 우리가 아는 Number를 상속받은 객체자료형은 값의 크고 작음을 비교하고, String의 경우 사전적 비교를 한다. 객체 내부에 명확한 값이 있어서 비교를 할 땐 이 인터페이스를 구현한다. public class ComparableMain { public static void main(String[] args){ System.out.println(new String("b").compareTo("a")); // 1 } } Comparator compare() 재정의 이것은 정렬규칙 그 자체를 의..

    Reflection 이란 ? JAVA Reflection, Reflect Class, RTTI

    오늘은 Reflection에 대해서 이야기 해보려고 한다. Reflection 개요 JVM에는 RTTI 시스템이 내장되어있다. RTTI란 RunTime Type Information의 줄임말인데, 실행시간에 타입의 정보를 알아내는 것이라고 볼 수 있다. 이는 자바에서 쉽게 사용할 수 있도록 클래스화 시켜놓기도 하였다. 보통 클래스를 통해 객체의 정보를 알아 낼 수 있는데, 클래스가 아닌 동적으로 메모리에 생성된 객체를 통해 클래스의 정보를 알아내는 것을 Reflection이라고 볼 수 있다. API문서를 보면 reflect 패키지 내부에 있는 클래스들이 있다. 위에 설명한 RTTI를 이용할 수 있게 만들어진 클래스들이며, 이 클래스는 생성한 객체의 인스턴스 타입, 메소드를 '동적'으로 접근하게 해주는 J..