'Java'에 해당되는 글 2건

  1. 2011.12.16 [JAVA] Singleton (싱글톤) 클래스
  2. 2010.11.08 [Eclipse] Eclipse 실행 오류

2개 이상의 Class에서 공통 상수를 정의해서 사용하려고
별도의 class를 하나 만들고
static final로 상수를 설정해서 선언했습니다.

public class UserVar {
	public static final String SITE_ID = "AAA";
}

그런데 이렇게 해서 다른 클래스에서 호출할 경우
컴파일 시점에서 static final 변수가 저장되어
추후 상수 값을 수정할 경우
전체를 다시 컴파일 해야하는 부담이 있더군요..

String siteId = UserVar.SITE_ID; // 컴파일 시점에서 상수 저장됨.

그래서 싱글톤으로 클래스를 다시 만들기로 했습니다.

그래서 Effective Java 2nd Ed. (Joshua Bloch 著)을 보다보니
JDK 1.5 이상에서 열거형 싱글톤을 만드는 방법이 나왔습니다.

public enum UserVar {
	INSTANCE;
	public String SITE_ID = "AAA";
}

클래스 대신 enum 형으로 만들고
INSTANCE를 선언해주면 되더군요..

호출할 때에는 인스턴스를 불러와서
변수를 불러오면 됩니다.

UserVar userVar = UserVar.INSTANCE;
String siteId = userVar.SITE_ID; // 런타임 시점에서 변수 저장됨.

이렇게 하면 싱글톤 속성을 유지하며
변수를 바꾸더라도 런타임 시점에서 변경된 값을 곧바로 사용할 수 있습니다.

작게나마 도움 되시길 ^^

P.S. 위 방법은 JDK 1.5 이상에서만 가능합니다.
1.5 미만에서는 public final 필드(INSTANCE)를 갖거나
static 팩토리 메소드 (getInstance)를 갖는 싱글톤 선언을 해줘야 함.
Posted by hyshin

C:\Java\jdk1.6.0_10 즉 jdk 1.6 을 설치후 eclipse-jee-ganymede-win32 를 실행시켜보면 다음과 같은 에러가 발생하는 것을 볼 수가 있다.


 jdk 1.5 버전을 찾지못해 이클립스가 실행되지 못하는 경우로 보여 검색후 http://wiki.eclipse.org/Eclipse.ini 의 사이트를 참조한후 eclipse.ini 를 수정후 실행되는 것을 볼 수가 있었다.

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-vm
C:\Java\jdk1.6.0_10\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

원본 URL
http://jjanggun.tistory.com/314
Posted by hyshin
TAG Eclipse, Java