这段代码中{}的作用,为何导致结果不同

Sasayau 2017-06-22 11:27:12

package test.maven;

import java.lang.reflect.Type;

import com.google.common.reflect.TypeToken;

public class TestBean<T> {
private final TypeToken<T> typeToken = new TypeToken<T>(getClass()) { };
private final Type type = typeToken.getType(); // or getRawType() to return Class<? super T>

public void foo(){
System.out.println(this.type);
}


}


TestBean<String> test = new TestBean<String>() {};//这里{}为何会导致结果不同
TestBean<String> test2 = new TestBean<String>() ;
test.foo();//class java.lang.String
test2.foo();//T

...全文
170 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sasayau 2017-06-23
  • 打赏
  • 举报
回复
引用 1 楼 galiniur0u 的回复:
因为带{}的代码相当于创建了一个新的子类,子类的泛型是String
问题已经解决,关于详情可以看http://www.cnblogs.com/ssklo/p/7068838.html
Sasayau 2017-06-23
  • 打赏
  • 举报
回复
引用 1 楼 galiniur0u 的回复:
因为带{}的代码相当于创建了一个新的子类,子类的泛型是String
不是啊 把String改成Integer输出的也是Integer
galiniur0u 2017-06-22
  • 打赏
  • 举报
回复
因为带{}的代码相当于创建了一个新的子类,子类的泛型是String

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧