class 类名称 <泛型标识> { private 泛型标识 /*(成员变量类型)*/ 变量名; .....
} }
定义泛型类
public class Generic {
// key 这个成员变量的数据类型为 T, T 的类型由外部传入
private T key;
// 泛型构造方法形参 key 的类型也为 T,T 的类型由外部传入
public Generic(T key) {
this.key = key;
}
// 泛型方法 getKey 的返回值类型为 T,T 的类型由外部指定
public T getKey(){
return key;
}
}
//泛型类可以接受多个类型变量类型
public class MultiType {
E value1;
T value2;
public E getValue1(){
return value1;
}
public T getValue2(){
return value2;
}
}
当在一个方法签名中的返回值前面声明了一个 < T > 时,该方法就被声明为一个泛型方法。< T >表明该方法声明了一个类型参数 T,并且这个类型参数 T 只能在该方法中使用。当然,泛型方法中也可以使用泛型类中定义的泛型参数。
public <类型参数> 返回类型 方法名(类型参数 变量名) { ... }
(1)只有在方法签名中声明了< T >的方法才是泛型方法,仅使用了泛型类定义的类型参数的方法并不是泛型方法。
public class Test {
// 该方法只是使用了泛型类定义的类型参数,不是泛型方法
public void testMethod(U u){
System.out.println(u);
}
// 真正声明了下面的方法是一个泛型方法
public T testMethod1(T t){
return t;
}
}
(2)泛型方法中可以同时声明多个类型参数。
public class TestMethod {
public T testMethod(T t, S s) {
return null;
}
}
(3)泛型方法中也可以使用泛型类中定义的泛型参数。
public class TestMethod {
public U testMethod(T t, U u) {
return u;
}
}
public class Test {
public void testMethod(T t) { //testMethod1() 是一个泛型方法,他使用的类型参数是与方法签名中声明的类型参数
System.out.println(t);
}
public T testMethod1(T t) {
return t;
}
}
(5)将静态方法声明为泛型方法
在静态成员中不能使用泛型类定义的类型参数,但可以将静态成员方法定义为一个泛型方法。
public class Test2 {
// 泛型类定义的类型参数 T 不能在静态方法中使用
// 但可以将静态方法声明为泛型方法,方法中便可以使用其声明的类型参数了
public static E show(E one) {
return null;
}
}
public class Test {
// 这是一个简单的泛型方法
public static T add(T x, T y) {
return y;
}
public static void main(String[] args) {
// 一、不显式地指定类型参数
//(1)传入的两个实参都是 Integer,所以泛型方法中的 ==
int i = Test.add(1, 2);
//(2)传入的两个实参一个是 Integer,另一个是 Float,
// 所以取共同父类的最小级, ==
Number f = Test.add(1, 1.2);
// 传入的两个实参一个是 Integer,另一个是 String,
// 所以取共同父类的最小级, ==
Object o = Test.add(1, "asd");
// 二、显式地指定类型参数
//(1)指定了 = ,所以传入的实参只能为 Integer 对象
int a = Test.add(1, 2);
//(2)指定了 = ,所以不能传入 Float 对象
int b = Test.add(1, 2.2);// 编译错误
//(3)指定 = ,所以可以传入 Number 对象
// Integer 和 Float 都是 Number 的子类,因此可以传入两者的对象
Number c = Test.add(1, 2.2);
}
}
public class ReverseWords {
/**
* 题目:颠倒一个句子中的词的顺序。比如: I am a student颠倒后变成:student a am I.词以空格分隔。
* 要求:
* 1.实现速度最快,移动最少
* 2.不能使用String的方法如split,indexOf等等。
* 解答:两次翻转。
*/
publ
oracle外部表是只允许只读访问,不能进行DML操作,不能创建索引,可以对外部表进行的查询,连接,排序,创建视图和创建同义词操作。
you can select, join, or sort external table data. You can also create views and synonyms for external tables. Ho
发现一个老外写的不错的jquery插件,可以实现将HTML
表格导出为excel,pdf等格式,
地址在:
https://github.com/kayalshri/
下面看个例子,实现导出表格到excel,pdf
<html>
<head>
<title>Export html table to excel an