프로그래밍

    TextView에 Layout_gravity 설정하는 법

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

    자꾸 까먹는 react-native ios proj 오픈

    .workspace 파일을 열어야한다. 또한 scheme 별 설정이 가능하다. 초기 설정은 debug로 설정되어있으나 release모드를 따로 관리할 수도 있다.

    함수에 적용할 수 있는 call, apply, bind

    함수 객체에 적용할 수 있는 메서드 3가지가 있다. 그것은 바로 call, apply, bind인데, call과 apply, bind의 공통점은 현재 실행되는 컨텍스트(this)가 무엇인지 바꿀 수 있다는 것이다. 기본적으로 객체가 아닌 이상 기본적으로 실행되는 컨텍스트는 window이다.(브라우저 기준) bind bind는 비교적 쉽다. 함수객체가 가리키고 있는 현재 컨텍스트(this)만 바꿔주는 역할을 한다. this만 바꿔주고 호출은 하지않는 역할을 한다. 함수 내부에서 this를 쓰면 bind에서 넘겨준 this를 사용하게 된다. call call은 함수객체의 현재 컨텍스트(this)도 바꾸지만, 함수를 호출해준다. Array.prototype.forEach.call(this, 인자) 여기선 인자..

    자바 익명클래스와 자바 람다 (Java Anonymous class, Java Lambda) 1편

    자바 익명클래스와 자바 람다 (Java Anonymous class, Java Lambda) 1편

    자바의 람다는 익명클래스와 매우 비슷한 모습을 하고있다. 그러나 둘은 아주 다르다. 익명클래스 일단 익명클래스는 어쨌거나 사용할 때 보통 객체와 동일하게 힙에 할당이 된다. 메인메소드 내에서 익명클래스를 사용하면 컴파일 시에 $1, $2 등과 같은 순서대로 클래스파일이 생성이 된다. 예시로, 평범한 인터페이스를 하나 선언한다. 추상클래스나 일반 클래스도 상관없다. interface Test{ public int getNum(); } 그 후, 메인에서 바로 사용하기 위해 재정의를 해준다. public class LambdaTest { public static void main(String[] args) { Test t1 = new Test(){ public int num = 10; public int ge..

    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..