-
java 泛型方法 静态_java静态方法使用泛型
2021-03-05 23:52:05用法 import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; public class StaticMethod { public static void main(String[] args) { System....用法 import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; public class StaticMethod { public static void main(String[] args) { System.out.println(test("aaaaa")); //aaaaa 基本用法 System.out.println(test1("aa").get(0).equals("aa")); //true 用于内部包装 System.out.println(test2(new HashSet(), Collection.class).size()); //0 用于强制转换类型 System.out.println(test3("bbbbb")); //bbbbb 装神弄鬼 } public static T test(T obj){ return obj; } public static List test1(T obj){ List list = new ArrayList(); list.add(obj); return list; } public static T test2(Object str, Class obj){ return (T)str; } public static B test3(B obj){ return obj; } } 原文地址:https://blog.csdn.net/m18870420619/article/details/79929316
-
Java泛型在静态方法中的使用
2017-08-17 21:39:23我们在静态方法中使用泛型的时候,我们需要在static 后面加上泛型标识我们在静态方法中使用泛型的时候,我们需要在static 后面加上<T>泛型标识,下面是我给出的一个例子
package demo; import java.util.Date; /** * created by yuyufeng on 2017/8/17. */ public class HelloService<T> { void sayHello1(T t) { System.out.println("hello: " + t); } /* static void sayHello2(T t) { System.out.println("hello: " + t); } */ static <T> void sayHello3(T t) { System.out.println("hello: " + t); } public static void main(String[] args) { HelloService<Date> helloService = new HelloService<>(); helloService.sayHello1(new Date()); HelloService.sayHello3(new Date()); } } /* 运行结果: hello: Thu Aug 17 21:38:02 CST 2017 hello: Thu Aug 17 21:38:02 CST 2017 */
如果不加,会报错。
-
java 泛型方法 静态_Java静态泛型方法使用例子-工具类
2021-02-12 14:26:21前言:当工具类对多个模型类进行排序,比较等操作的时候,需要书写大量重复代码,因为懒人总要想怎么省事的,所以考虑使用泛型这个玩意简化代码案例:当前存在两个模型类,Fruit和Person,他们都需要排序方法而且...前言:当工具类对多个模型类进行排序,比较等操作的时候,需要书写大量重复代码,因为懒人总要想怎么省事的,所以考虑使用泛型这个玩意简化代码
案例:当前存在两个模型类,Fruit和Person,他们都需要排序方法而且业务逻辑各不相同,因此需要分别写两个排序方法,但因为排序相同的地方太多,唯一的区别就是判断两个对象的大小关系,于是在此做简化操作。
执行步骤:
1、编写模型类接口 interface Model
1 public interface Model{2 public intcompareTo(T model);3 }
这里仅需要定义一个比较的方法
2、编写Person类 class Person
1 public class Person implements Model{2 privateString name;3
4 publicPerson(String _name) {5 this.name =_name;6 }7
8 @Override9 public intcompareTo(Person _person) {10 return this.name.compareToIgnoreCase(_person.name);11 }12 }
Fruit的代码我就不放上来了,因为为了举例我这俩的比较方法写的是一样的,但是实际业务代码可能是不一样的
3、编写工具类 class Sort
1 public classSort {2
3 public static > void sort(Listlist) {4 for (int i = 0; i < list.size() - 1; i++) {5 for (int j = i; j < list.size(); j++) {6 if (list.get(i).compareTo(list.get(j)) > 0) {7 T swap =list.get(i);8 list.set(i, list.get(j));9 list.set(j, swap);10 }11 }12 }13 }14 }
随便找了个排序算法就套进去了
然后就是主函数的调用
1 public classMain{2 public static voidmain(String[] args){3 LinkedList list = new LinkedList<>();4 list.add(new Person("admin"));5 list.add(new Person("root"));6 list.add(new Person("huawei"));7 list.add(new Person("cisco"));8 Sort.sort(list);9 for(Person item : list) {10 System.out.println(item.toString());11 }12 }13 }
4、Fruit类只要按照Person类一样实现Model的compareTo方法就可以使用Sort.sort方法进行排序了
后记:最开始我的想法是写个Model接口,在接口中写一个compareTo方法,然后形参类型不知道咋写了
如果写Model的话,Person实现compareTo方法的时候形参类型也肯定是Model
我这块的逻辑比较简单,用name字段进行比较,如果在Model接口加上getName方法后,怎么看都不舒服
Model类不一定都有name字段,而且这样Person类就可能会与Fruit类进行比较
虽然可以在逻辑上不这么搞,但是怎么都看得难受啊,于是就想到用泛型搞这玩意
-
JAVA 泛型方法 和 静态方法泛型
2013-03-16 13:00:15// 泛型方法和静态方法泛型 泛型类定义的泛型 在整个类中有效 如果被方法使用 那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定 为了让不同方法可以操作不同类型 而且类型还不确定 那么...//仅作为学习笔记
/* // 泛型方法和静态方法泛型 泛型类定义的泛型 在整个类中有效 如果被方法使用 那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定 为了让不同方法可以操作不同类型 而且类型还不确定 那么可以将泛型定义在方法上 静态方法泛型: 静态方法不可以访问类上定义的泛型 如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上 */ class Demo<T> { public void method(T t) { System.out.println("method :"+ t); } public static <W> void staticMethod(W w) { System.out.println("staticMethod :"+ w); } public <K> void show( K k) { System.out.println("Show :"+ k); } public <Q> void print(Q q) { System.out.println("Print :"+ q); } } class TestDemo { public static void main(String [] arags) { Demo<Double> d = new Demo<Double>(); d.method(3.4); d.staticMethod(true); d.show("haha"); d.print(new Integer(4)); } }
-
java泛型静态方法实际使用
2019-12-26 17:42:46静态泛型方法定义: public static <T> T deserialize(byte[] byteArray) { ObjectInputStream oip = null; try { oip = new ObjectInputStream(new ByteArrayInputStream(byteArray)); @... -
java静态泛型方法调用_Java静态泛型使用方法实例解析
2021-02-13 00:32:47前言:当工具类对多个模型类进行排序,比较等操作的时候,需要书写大量重复代码,因为懒人总要想怎么省事的,所以考虑使用泛型这个玩意简化代码案例:当前存在两个模型类,Fruit和Person,他们都需要排序方法而且... -
Java静态泛型使用方法实例解析
2020-08-19 03:02:37主要介绍了Java静态泛型使用方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
java 泛型类使用长江_Java 泛型详解:泛型类、泛型接口、泛型方法
2021-01-21 05:39:12文章目录泛型类泛型类的继承泛型与内部类泛型接口泛型接口的实现泛型方法...静态方法不可以使用泛型类定义的类型参数泛型方法返回值赋值给形参可变参数和泛型方法泛型类和泛型方法泛型类中的成员泛型方法和静态泛型方法... -
Java泛型使用
2020-12-22 14:14:20Java泛型使用 1. 泛型 1.1 什么是泛型,为什么引入泛型 在项目中,我们的功能代码往往要考虑之后的复用!!!这要求功能代码尽可能的支持更多类型,在不考虑泛型的情况下,如果需要更换数据类型,只能重新完成对应... -
JAVA泛型(泛型方法和泛型类)
2020-07-11 12:18:19你定义了一个泛型(类、接口),那么Java规定,你不能在所有的静态方法、静态初块等所有静态内容中使用泛型的类型参数! 泛型不能用在静态方法等; 泛型方法 该方法在调用时可以接收不同类型的参数。根据传递给泛型... -
Rhyme/Java泛型I 泛型类 泛型接口 泛型方法
2018-01-13 14:57:07Java泛型 I 泛型类 泛型接口 泛型方法 Q1、为什么要使用泛型,使用泛型的好处在哪儿? 答: 1、更安全 2、更方便(隐式的强制转化) Q2、泛型类 1、泛型不能使用在静态属性上 2、泛型不能使用在静态... -
java 泛型 构造_Java泛型方法和构造函数
2021-03-06 05:12:29本篇文章帮大家学习java泛型方法和构造函数,包含了Java泛型方法和构造函数使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。泛型方法可以在方法声明中定义类型参数,它们在方法的返回... -
java静态泛型_java 静态方法上的泛型
2021-03-04 01:35:35泛型也可以僅定義在靜態方法上,舉例而言,在定義與使用泛型中自定義過支援泛型的ArrayList,如果現在想寫個asArrayList方法,可指定不定長度引數,將之轉換為ArrayList,則可以如下:packagecc.openhome;... -
java泛型怎么使用_Java泛型该怎么使用
2021-02-12 22:28:33定义完泛型后,可以在定义位置之后的类的几乎任意地方(静态块,静态属性,静态方法除外)使用泛型,就像使用普通的类型一样。注意,父类定义的泛型不能被子类继承。例://自定义一个泛型publicclassMyGenerics... -
Java泛型的使用-泛型类,泛型方法,通配符
2018-12-11 10:43:09博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客...如果你定义了一个泛型类 / 接口,那么Java规定,你不能在该类内的静态方法、静态初块等所有静态内容中使用泛型的类型参数。例如: pu... -
java泛型使用
2020-04-13 13:15:09按照某种类型(如String...静态方法使用泛型类型,必须定义类型<K>来实现。 泛型支持多种类型<T, K>。 源码如下: public class Pair<T>{ private T first; private T second; public void P... -
java 泛型 静态导入
2020-02-14 21:02:301.要想导入不同的包的类的方法,那么肯定使用import完成. ...静态方法 import static 包.类.*; 运行结果 静态导入,是将这个指定类中的全部方法导入进来,最后就好像这些方法全部是在类中定义的方法一样. ... -
静态java泛型_具有类和嵌套静态接口的Java泛型
2021-03-13 18:51:31我想在嵌套的静态接口中使用泛型类.我的目标是做这样的事情:public class MyClass{private MyInterface task;...如果我做了一些更改(下面)我可以在接口中使用泛型类型,但是我想避免使用这种方法,... -
Java静态泛型方法
2016-09-12 23:48:52Java在JDK 5中引入了泛型,使用起来方便了很多,下面是一段很常见的泛型使用: ListString> list = new ArrayListString>(); 泛型方法使用 不仅集合中可以使用,在定义类和方法的时候也是经常使用的,但是关于... -
Java泛型:泛型类、泛型接口、泛型方法
2020-09-24 11:28:26文章目录 ... 静态方法不可以使用泛型类定义的类型参数 泛型方法返回值赋值给形参 可变参数和泛型方法 泛型类和泛型方法 泛型类中的成员泛型方法和静态泛型方法 匿名内部类和泛型 个人理解总结 ... -
Java 泛型详解(超详细的java泛型方法解析)
2020-06-26 21:19:54目录一、基本概述二、特性三、泛型的使用3.1 泛型类3.2 泛型接口3.3 泛型通配符3.4 泛型方法(1)泛型方法的基本用法(2)类中的泛型方法(3)泛型方法与可变参数(4)静态方法与泛型(5)泛型方法总结四、泛型数组 ... -
JAVA_静态泛型方法及静态泛型成员变量
2019-03-17 11:29:04泛型类中的静态方法不能使用类的泛型,而应该将该方法定义为泛型方法 1.错误示范: class demo<T>{ public static T show(T temp) { return temp; } } 2.正确示范: class demo<T&... -
java泛型 简书_java泛型
2021-03-17 23:56:25一、泛型接口:接口二、泛型方法原则上,能够使用泛型方法的时候就尽量避免使用泛型类,这会使你的代码看上去更加清楚。另外,如果 static 方法需要使用泛型,只能使用泛型方法。泛型方法的使用方法就是将泛型参数... -
Java泛型方法
2019-02-27 14:09:42(1) 如果你定义了一个泛型(类、接口),那么Java规定,你不能在所有的静态方法、静态初块等所有静态内容中使用泛型的类型参数。例如: public class A&amp;lt;T&amp;gt; { public static void ... -
java泛型在方法的使用
2018-05-08 15:36:52(1) 如果你定义了一个泛型(类、接口),那么Java规定,你不能在所有的静态方法、静态初块等所有静态内容中使用泛型的类型参数。例如:public class A<T> { public static void func(T t) { //报错...