import java.io.Serializable; abstract class Test { abstract T test(Class cls); abstract T test(Serializable type); private void call(){ String s = test(String[].class); } }