
时间: 2020-07-24

本文向您介绍Java通用操作,主要包括Java通用操作的用法示例classforname 泛型,应用技巧,基本知识点摘要和需要注意的事项. 它具有一定的参考价值classforname 泛型,需要它的朋友可以参考它.

1个界面

package com.example.astest.demo.gener; // //接口的泛型是最容易定义和实现的,子类可以随意定义其类型及重写其方法 9成的泛型在接口 //泛型的直接用途是强转 和 判断类型 instanceof public interface Generator<R> { public R next(); }
2实现类一
package com.example.astest.demo.gener; /** * @Auth * @classname GeneratorImpl * @Description //TODO * @Date 2:06 PM 24/07/2020 * version 1.0 **/ //如果实现的子类没有带泛型会报错 反省写别的也会报错 public class GeneratorImpl<T> implements Generator<T> { @Override public T next() { return null; } }
3个实施第二类
package com.example.astest.demo; import com.example.astest.demo.gener.Generator; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.List; import java.util.Random; /** * @Aut * @classname Generic * @Description //TODO * @Date 5:09 PM 21/07/2020 * version 1.0 **/ @Data @Slf4j public class Generic<E> implements Generator<String> { // 子类的数组可以直接给父类数组赋值 同样适用于泛型 所有类继承于Object ArrayList[] a={}; List[] numbers=a; // ArrayList public boolean add(E e) { // ensureCapacityInternal(size + 1); // Increments modCount!! // elementData[size++] = e; 这里的elementData 是个Object数组 // return true; // } private E taget; public Generic(E taget) { this.taget = taget; } public Generic() { } public E getTaget(){ return taget; } //此处的?和Number、String、Integer一样都是一种实际的类型,可以把?看成所有类型的父类。是一种真实的类型。 //但是通配符代表的是某个字母泛型 而不能单独作为一种泛型 例如用Generic<?>代替Generic<E> 或者付给一个 //真实的类型如 Generator<String> public void showKeyValue1(Generic<?> obj){ log.debug("泛型测试","key value is " + obj.getTaget()); // obj.setTaget(45); 这个语法是错误的,因为<?>代表不了任何类型 // obj.setTaget(taget); 错误 虽然target是E类型但也不是<?> } public Generic<E> returnMethod(E a){ return new Generic<E>(a); } //这里不能改变返回类型 还有泛型改字母不算重载 public ArrayList<E> returnMethod(){ return new ArrayList<E>(); } // 返回值的泛型已经改变 public static <T> Generic<T> returnMethodTwo(){ return new Generic<>(); } public <T> void printMsg( T... args){ for(T t : args){ log.debug("泛型测试","t is " + t); } } @Override public String next() { Random rand = new Random(); return rand.ints().toString(); } public <T> T genericMethod(Class<T> tClass ) throws IllegalAccessException, InstantiationException { // T inst = (T) ca.newInstance(initargs); return tClass.newInstance(); } }
4个测试类别
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-288288-1.html
否则后患无穷
以习主席为首的党中央采取一系列的改革措施和发展新思维挑战了美国的地位
哭