java SE 5.0 增加了Generics特性,在定义类的时候允许带有“参数”。这个特性的好处就是可以在使用时附加一个类型,但是在定义时却隐藏了具体的使用类型。特别是对于Collection API有非凡的意义。从前,Collection为了保证适用范围尽量的大,将element定义为Object类型,这样,一个添加到Collection的对象便会丧失它的类型信息。而通过Generics,就能避免这种情况,“参数”就能保存对象的类型信息,同时也能起到限制作用。
/**
*
*/
package com.test.generics;
import java.util.Date;
/**
* @author Administrator
*
*/
public class CTest<E>
{
protected E var;
public void setVar(E e)
{
var = e;
}
public E getVar()
{
return var;
}
public String toString()
{
return CTest.class.toString();
}
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
CTest<String> ct = new CTest<String>();
ct.setVar("hello world! ");
System.out.println(ct.getVar());
CTest<Date> cd = new CTest<Date>();
cd.setVar(new Date());
System.out.println(cd.getVar());
CTest cc = new CTest();
cc.setVar(new CTest());
System.out.println(cc.getVar());
System.out.println(CTest.class.isInstance(ct));
}
}
一点总结:
1 如果不指定“参数”,默认Object
2 System.out.println(CTest.class.isInstance(ct));//true
分享到:
相关推荐
安装要从CRAN安装generics ,请使用: install.packages( " generics " ) 要安装开发版本,请使用: install.packages( " devtools " )devtools :: install_github( " r-lib/generics " )用法generics是一个简单,轻...
这是一个简单的例子。 // reverse.go package main import "fmt" func Reverse ( a [] type T ) { for i , j := 0 , len ( a ) - 1 ; i < j ; i , j = i + 1 , j - 1 { a [ i ], a [ j ] = a [ j ], a [ i ] } } ...
这个想法很简单:将一组特征组合在一个名称下。最简单的例子是:use trait_set:: trait_set;trait_set! {pubtraitThreadSafe = Send + Sync; }这里显示的宏 [trait_set ] 是 crate 的主要实体:它允许声明多个 trait...
下面是使用 @SuppressWarnings 来取消 deprecation 警告的一个例子: public class DeprecatedExample2 { @Deprecated public static void foo() { }}public class DeprecatedUser2 { @SuppressWarnings(value={...
您可以使用FixAuth将您的数据结构表示为一个固定点,它会自动成为MapAuth一个实例,如。 您可以使用Auth1数据类型并使用派生Generics1 ,然后简单地声明instance MapAuth YourDataType (请参阅和)。 所有方法都...
一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL学习心得 - 调用属性值 XSLT与XML转换的详细介绍 功能应用 读写搜索 基础教程 RSS Web2.0时代,RSS你会用了吗?(技术...
本文实例分析了.NET基础之自定义泛型。分享给大家供大家参考。具体分析如下: 在.NET中泛型使用非常频繁,在...声明一个可空的int类型,由于C#语法对这个做了简化通常我们都不这样写,而是这样写: int? nullableInt
要安装它,只需将以下行添加到您的Podfile中: pod 'Swift_SimpleNetworkLibrary'GET请求让我们尝试使用一个很棒的REST API 。 该API为我们提供了一组虚拟的员工。 该员工如下所示。 struct Employee : Codable { ...
我们举一个最简单的例子,下面的SimpleBean是未经混淆的class文件通过Jad反编译以后获得的源文件: 1 public class SimpleBean implements Serializable { 2 3 private String name = "myname"; 4 5 private ...
我们举一个最简单的例子,下面的SimpleBean是未经混淆的class文件通过Jad反编译以后获得的源文件: public class SimpleBean implements Serializable { private String name = "myname"; private List ...
我们举一个最简单的例子,下面的SimpleBean是未经混淆的class文件通过Jad反编译以后获得的源文件: public class SimpleBean implements Serializable { private String name = \"myname\"; private ...
5.18.1 从Calendar控件中选择一个日期 149 5.18.2 从日历中选择要输出的日期格式 150 5.18.3 选择日期、星期或月份 150 5.18.4 使用日期范围 151 5.18.5 修改日历的样式和操作方式 153 5.19 AdRotator服务器...
26.2 建立一个简单的 XML Web服务945 26.2.1 WebService页面指令946 26.2.2 查看Web服务的 基类文件946 26.2.3 把定制的数据集 显示为SOAP948 26.2.4 XML Web服务接口950 26.3 使用简单的XML Web服务953 26.3....