[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);
List StringAry = 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 |