2014-04-04 4 views
3

T은 다음 선언에서 제한되지 않습니다. 그러나 Java 일반 매개 변수 유형을 최종 클래스 목록으로 제한

abstract public class Defaults<T> 

String, Integer, DoubleDefaults 클래스 다룬다. 따라서 TString, Integer, Double으로 제한하고 싶습니다.
abstract public class Defaults<T extends String&Integer&Double> 

나는 그것을 어떻게 다음을 수행 할 수 있습니다

: 그들은 결승전이기 때문에 허용되지 않습니다 분명히

?

+1

'클래스 컨테이너 '로 허용 경고. 그것으로'Container '에 바인딩 된 불일치 오류가 발생합니다. 그래서, "분명히, 다음은 결승전에서 허용되지 않습니다."라고 잘못 생각합니다. –

+0

나를 인용하는 정밀도 :

답변

7

할 수 없습니다. 당신이 할 수있는 가장 가까운 것은 개인 생성자

private Defaults() {} 

에게 Defaults주고 ... 그리고 허용 된 클래스 만 팩토리 메소드를 제공합니다

public static Defaults<String> stringDefaults() { return new Defaults<>(); } 
public static Defaults<Integer> integerDefaults() { return new Defaults<>(); } 
public static Defaults<Double> doubleDefaults() { return new Defaults<>(); }