[Java] Class TYPE 알아내기

Author : 퓨림노 / Date : 2013.01.08 10:22 / Category : before/Develop

Goal

- 클래스 (다중)상속 또는 Interface 를 사용하여서 클래스의 다형성을 이루고자 할때, 

  현재의 클래스 이름을 알아야 할 때가 있다. 필요가 없다면 상관없지만...


  현재 Design Pattern - State Pattern or strategy Pattern 을 사용하고 있다. 

  이때, Interface 형태로 클래스를 받고나서 어떠한 클래스인지 몰라 타입의 변경이 불가능 하게 된다. 

 

 필요하다면, 변경하는 방법을 알아보도록 하자.



classA.java

package vbflash.net;

public class ClassA {	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	}
}

classB.java

package vbflash.net;

public class ClassB {	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	}
}

MainClass.java


package vbflash.net;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class MainClass {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		ClassA classA = new ClassA();
		ClassB classB = new ClassB();
		
		String a = classA.getClass().toString();
		String b = classB.getClass().toString();
		
		String array[] = URLParsing(a,".");
		
		System.out.println( "Class TYpe =>" + classA.getClass().toString() );
		System.out.println( "Class TYpe =>" + classB.getClass().toString() );
	}
	
	static public String[] URLParsing(String url, String token) {

		StringTokenizer st1 = new StringTokenizer(url, token);

		List StringAry = new ArrayList();
		while (st1.hasMoreTokens()) {
			String str = st1.nextToken();
			StringAry.add(str);
		}
		return StringAry.toArray(new String[StringAry.size()]);
	}
}

이상 끝. 

저작자 표시 비영리 동일 조건 변경 허락
신고

'before > Develop' 카테고리의 다른 글

openCV SVM  (0) 2013.01.25
[ubuntu/windows] 멀티부팅시 grub rescue  (0) 2013.01.10
[Java] Class TYPE 알아내기  (0) 2013.01.08
[android/Layout] FrameLayout 사용방법  (0) 2013.01.07
[android] activity_main_out.xml 파일생성 에러  (0) 2013.01.07
[java] java classpath 설정  (0) 2012.12.28

Tags : ,

Blog Information

퓨림노

앞으로 블로그에 markdown+dropbox를 이용하여 포스팅 예정중!!

Search

Statistics

  • Total : 455,012
  • Today : 41
  • Yesterday : 120

Archives

Copyright © http://vbflash.net All Rights Reserved
Designed by CMSFactory.NET