publicclass Gen {
T obj;
public T getObj() {
return obj;
}
publicvoid setObj(T obj) {
this.obj = obj;
}
publicstaticvoid main(String[] args) {
Gen gen = new Gen<>();
gen.setObj("abc");
// gen.setObj(10); //无法通过编译
String str = gen.getObj(); //无需类型转换//-----------------------------
Gen gen2 = new Gen();//raw type原始类型
gen2.setObj("abc");
gen2.setObj(10); //可以通过编译,自动装箱将10转化为Integer对象
Integer num = (Integer) gen2.getObj();//使用了强制类型转换
}
}
细心的你会发现在main()方法里是使用泛型类型Gen,便不再需要强制类型转换,也就移除了运行时的ClassCastException。同时为了区别,在此也定义了一个没有使用泛型类型的gen2,这时,编译器会弹出一个警告“Gen is a raw type,References to generic type Gen should be parameterized”。当我们不提供泛型类型时,会默认使用Object会代替,也是因此这样,gen2可以设置String和Integer类型,不过,我们应尽量去避免这种这种情况的出现,如此,便又需要用到强制类型转换,也伴随着运行时的ClassCastException异常。
tips:可以使用@SuppressWarnings("rawtypes")来抑制编译器弹出警告。
接口的泛型应用和类的泛型应用很类似,如下:
publicinterface List {
void add(E x);
Iterator iterator();
}
publicinterface Iterator {
E next();
boolean hasNext();
}
String[] sa = new String[100];
Collection cs = new ArrayList();
// T 推断为String
fromArrayToCollection(sa, cs);
// T 推断为Object
fromArrayToCollection(sa, co);
Integer[] ia = new Integer[100];
Float[] fa = new Float[100];
Number[] na = new Number[100];
Collection cn = new ArrayList();
//T 推断为Number
fromArrayToCollection(ia, cn);
//T 推断为Number
fromArrayToCollection(fa, cn);
//T 推断为Number
fromArrayToCollection(na, cn);
//T 推断为Object
fromArrayToCollection(na, co);
//编译错误,Number与String不能兼容
fromArrayToCollection(na, cs);
public class HttpClientUtils
{
public static CloseableHttpClient createSSLClientDefault(CookieStore cookies){
SSLContext sslContext=null;
try
{
sslContext=new SSLContextBuilder().l
对于JAVA的join,JDK 是这样说的:join public final void join (long millis )throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means t
在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便。 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其引用,成为公用的函数集合。 function.php如下:
<?php /** * This is the shortcut to D
这篇日志是我写的第三次了 前两次都发布失败!郁闷极了!
由于在web开发中常常用到这一部分所以在此记录一下,呵呵,就到备忘录了!
我对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的。
1、实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作。
public class Ses
Spring Boot 1.3.0.M1于6.12日发布,现在可以从Spring milestone repository下载。这个版本是基于Spring Framework 4.2.0.RC1,并在Spring Boot 1.2之上提供了大量的新特性improvements and new features。主要包含以下:
1.提供一个新的sprin