2012-09-27 104 views
1

的方法定義如下:Java方法定義問題

public static void checkNotNull<T extends Throwable>(Object value, String name, Class<T> exceptionClass) 
{ 

} 

那麼編譯器會引發一些錯誤:

**這行

- void is an invalid type for the variable checkNotNull 
- Duplicate field ValidationUtility.value 
- Syntax error on token ">", Identifier expected after this token 
- The type Class is not generic; it cannot be parameterized with 
arguments <T> 
- The type Class is not visible 
- Duplicate field ValidationUtility.exceptionClass 
- T cannot be resolved to a type 
- Syntax error, insert ";" to complete FieldDeclaration 
- Duplicate field ValidationUtility.String** 

多個標記有什麼不對?請幫助我,謝謝。

+0

是的,你沒有發佈所有的代碼。 – duffymo

+1

它基本上是一個缺失的大括號或分號。在IDE中格式化您的代碼並檢查。如果可能,發佈您的代碼。 – basiljames

+2

請提供能夠提供錯誤的最小代碼。 – mtk

回答

1

void checkNotNull<T extends Throwable>(...,Class<T> exceptionClass)是一個錯誤的語法。它應該是<T extends Throwable>void checkNotNull(...,Class<T> exceptionClass)

public static <T extends Throwable> void checkNotNull(Object value, String name, 
                 Class<T> exceptionClass) {} 
0

在void之前聲明<T extends Throwable>

public static <T extends Throwable> void checkNotNull(Object value, String name, 
Class<T> exceptionClass) {} 

你可以參考Generics Tutorial

JLS#8.4. Method Declarations

MethodHeader: 
    MethodModifiersopt TypeParametersopt Result MethodDeclarator Throwsopt 
0
public static <T extends Throwable> void checkNotNull(Object value, String name, Class<T> exceptionClass) 
{ 

}