2017-11-08 1 views
2

누군가 테스트하고 싶은 제네릭 클래스를 작성했습니다.다른 클래스에서 일반 클래스의 main 메서드를 테스트하십시오.

public class Test{ 
    public static void main(String[] args){ 
     foo<Integer>.main({"hello"}); 
    } 
} 

왜이 작업을 수행합니다 나는 다음과 같이 위의 함수의 주요 방법을 테스트하려고 다른 클래스가

public class <E> foo{ 
    public static void main(String[] args){ 
     do_stuff(); 
    } 
} 

: 그것은 뭔가처럼 보인다? 이 작업을 수행하는 올바른 방법은 무엇입니까? 참고 : 문제는 코드가 아닌 내 문제 일 수 있지만이를 확인할 수는 없습니다.

답변

2

먼저 이름 뒤에 유형을 정의해야하므로 일반 형식의 클래스는 컴파일되지 않습니다. public class foo<E> (규칙 준수!).

다음, 당신은 특정 제네릭 형식과의 메소드를 호출하려면 다음을 사용할 수 있습니다, 그러나 유형이 경우 사용되지 않은 :

public class Test { 
    public static void main(String[] args){ 
     foo.<Integer>main(new String[] {"hello"}); 
    } 
} 

귀하의 컴파일러는하지만이 일에 대해 경고 가능성이 가장 높은 것입니다!

+1

솔루션 작동! – user308485

관련 문제