2012-09-02 4 views
0

나는선언 패키지 클래스 - 자바

pakage1.class.files 
    |- ClassA; 
    |- ClassB; 

pakage2.class.files 
    |- ClassC; 

같은 클래스와이 개 패키지를 만든하지만 난

public class ClassC 
{ 
    public void method1() 
    { 
     pakage1.class.files.ClassA var1 = new pakage1.class.files.ClassA(); 
    } 
} 

을 다음과 같이 코드를 호출 할하지만 난 "pakage1.class를 전달하려는 .files.ClassA "로 친절하게 도와주세요

public class ClassC 
{ 
    public string CL1 = "pakage1.class.files.ClassA"; 

    public void method1() 
    { 
     CL1 var1 = new CL1(); 
    } 
} 

같은 변수 ...

답변

1

아니요,이 작업을 수행 할 수 없습니다. 변수 유형은 컴파일 타임에 알려 져야합니다.

당신은 사용할 수 있습니다

Class<?> clazz = Class.forName(className); 
Object object = clazz.newInstance(); 

...하지만 물론 당신은 회원의에서 얻을 반사를 사용해야 할 것입니다. 이 유형의 변수 이 아닙니다.

편집 : 물론 코드의 모든 곳에서 정규화 된 이름을 사용할 필요는 없습니다. 당신은 그것에 대해 import 문을 사용할 수 있습니다 : 정말 물론 같은 일이 아니다 ...하지만 어쨌든 당신을 도울 수

// Please don't include "class" as part of your package name... 
import package1.class.files.ClassA; 

public class ClassC { 
    public void method1() { 
     ClassA var1 = new ClassA(); 
    } 
} 

....

+0

존 감사하지만, 요점을 얻을 수 없었습니다. 간단하게 만들 수 있습니까? (나는 자바가 처음이다.) – user1629372

+1

@ user1629372 : 가능한 한 간단하게 만들었다. 당신이하려는 일을 할 수 없습니다. 우리는 왜 당신이 이것을 원한다고하는 이유에 대한 정보를 우리에게주지 않았기 때문에 더 이상의 조언을하기가 힘듭니다 ... –

0
CL1 var1 = new CL1(); 

이것은 java에서의 오류입니다. CL1은 데이터 유형이 아닌 변수의 식별자이므로 변수를 만들 때 CL1을 유형으로 사용할 수 없습니다.