Java 数组类型参数的相同公开
首先,如果标题不对,我是java新手 我想创建一个方法,如果输入是一个对象的类,那么它的收益率就是对象,但是如果输入是对象数组的类,那么它的收益率就是对象数组Java 数组类型参数的相同公开,java,Java,首先,如果标题不对,我是java新手 我想创建一个方法,如果输入是一个对象的类,那么它的收益率就是对象,但是如果输入是对象数组的类,那么它的收益率就是对象数组 public final static <T extends BaseClass> T fromJson(String json, Class<? extends BaseClass> klas) throws JsonSyntaxException { return (T) GSON.fromJson(j
public final static <T extends BaseClass> T fromJson(String json, Class<? extends BaseClass> klas) throws JsonSyntaxException {
return (T) GSON.fromJson(json, klas);
}
public final static <T extends BaseClass> T[] fromJson(String json, Class<? extends BaseClass[]> klas) throws JsonSyntaxException {
return (T[]) GSON.fromJson(json, klas);
}
但是编译器说这两种方法都有相同的闭包,如何处理呢?不幸的是,由于类型擦除,编译成字节码的签名如下所示:
public final static BaseClass fromJson(String json, Class klas) throws JsonSyntaxException {
return (BaseClass) GSON.fromJson(json, klas);
}
public final static BaseClass[] fromJson(String json, Class klas) throws JsonSyntaxException {
return (BaseClass[]) GSON.fromJson(json, klas);
}
如您所见,签名实际上是相同的
最好的方法是重命名其中一个或两个方法,使其具有不同的名称
public final static BaseClass fromJson(String json, Class klas) throws JsonSyntaxException {
return (BaseClass) GSON.fromJson(json, klas);
}
public final static BaseClass[] fromJson(String json, Class klas) throws JsonSyntaxException {
return (BaseClass[]) GSON.fromJson(json, klas);
}