相关疑难解决方法(0)

什么是原始类型,为什么我们不应该使用它?

问题:

  • 什么是Java中的原始类型,为什么我经常听说不应该在新代码中使用它们?
  • 如果我们不能使用原始类型,它有什么替代方案,它是如何更好的?

java generics raw-types

617
推荐指数
13
解决办法
20万
查看次数

该方法如何推断<T>的类型

以下方法完美无瑕

public <T> void fromJsonArray(String jsonString,Type tToken) {
  Gson g = new Gson();
  T list = g.fromJson(jsonString,tToken);
  System.out.println(list);
}
Run Code Online (Sandbox Code Playgroud)

但是我还没有说明这种方法中的<T>是什么.如何将编译器返回的值分配给i未指定fromJson的变量list

我刚刚测试了答案的有效性,说明<T>是从方法的返回类型推断出来的.它似乎没有成功.请查看以下代码.它甚至没有编译

import java.util.*;

class Sample {

  public List<String> getT(String s) {
    List<String>  list = new ArrayList<String>();
    list.add(s);
    return list;
  }

  public <T> void test(){
    T list = getT("test");
    System.out.println(l);
  }

  public static void main(String[] a) {
    new Sample().test();
  }
}
Run Code Online (Sandbox Code Playgroud)

再次修改了源并对其进行了测试,结果导致了编译时错误

public <T> List<T> getT(T s) {
  List<T>  list = new ArrayList<T>();
  list.add(s);
  return …
Run Code Online (Sandbox Code Playgroud)

java generics gson

10
推荐指数
1
解决办法
3233
查看次数

标签 统计

generics ×2

java ×2

gson ×1

raw-types ×1