关于GSON中 java.lang.reflect.Type type = new TypeToken<List<Object>>(){}.getType();

其主要的就是匿名类、匿名内部类、回调函数这样,如果你对new TypeToken<List<Object>>(){}.getType();这个很疑惑的话,先想想接口回调吧,看看View.OnClickListener的写法,再看以下示例,想必就会很清晰了。

主要看2处关键字,1:class 与 interface的区别;2: class 与 static class的区别


public class TestAnonymous {


public static class TestAnonymousClass{

public int getValue(){
return 1;
}
}

public class TestAnonymousClass2{
public int getValue(){
return 2;
}
}

public interface TestAnonymousClass3{
public int getValue();

}


       public static void main(String[] args) {

                  int a =  new TestAnonymous.TestAnonymousClass(){
 
private int a = 1;
@Override
public int getValue() {
return ++a;
}
 }.getValue();

 System.out.println("iii: "+a);
 
 a = new TestAnonymous().new TestAnonymousClass2(){
 private int a = 2;
 public int getValue() {
 return ++a;
 };
 }.getValue();
 System.out.println("iii: "+a);
 

                         // 内部类被static修饰,可以直接new 类名.内部类

 a = new TestAnonymous.TestAnonymousClass3() {
 
 private int a=3;

@Override
public int getValue() {
// TODO Auto-generated method stub
return ++a;
}
}.getValue();
System.out.println("iii: "+a);



System.out.println("===================================");

// class的方式,可以不用重新方法,就能获取到默认的
a =  new TestAnonymous.TestAnonymousClass(){}.getValue();

 System.out.println("iii: "+a);
 
 a = new TestAnonymous().new TestAnonymousClass2(){}.getValue();
 System.out.println("iii: "+a);
 

                         // interface 方式,需要重写interface中的方法
 a = new TestAnonymous.TestAnonymousClass3() {
 private int a=3;

@Override
public int getValue() {
// TODO Auto-generated method stub
return ++a;
}
}.getValue();
System.out.println("iii: "+a);

}

    


}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值