[Java] Class TYPE 알아내기
- Language/Java
- 2013. 1. 8.
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); ListStringAry = new ArrayList (); while (st1.hasMoreTokens()) { String str = st1.nextToken(); StringAry.add(str); } return StringAry.toArray(new String[StringAry.size()]); } }
이상 끝.
'Language > Java' 카테고리의 다른 글
[java] java 실행파일 배포하기 (0) | 2013.04.12 |
---|---|
[java] java classpath 설정 (0) | 2012.12.28 |
[Java] List 중복 제거 (0) | 2012.12.26 |
Java 소요시간 측정하기 (0) | 2012.05.28 |
[Java] Java 파일 입출력 (0) | 2012.04.15 |