【java】关于泛型修饰符
2018-01-23 12:38
323 查看
package p5.forkjoin; import java.util.function.Supplier; /* 这是一个模拟Optional类的用于处理空的类 */ public class MyTest<T> { /* * 被托管的值 */ private T value; public MyTest(T t) { this.value = t; } /* * 现在需要实现一个方法: 该方法接收一个 返回Throwable对象 的Supplier对象 * 如果value不为空返回value,否则抛出supplier对象(的get()方法)返回的异常 */ /* * 实现1 存在的问题:抛出的异常始终为throwable,即使e.get()返回一个RuntimeException。 */ // public T orElseThrow(Supplier<? extends Throwable> e) throws Throwable { // if (value != null) { // return value; // } else { // throw e.get(); // } // } /* * 实现2: * 让抛出的异常(e.get())也变为了泛型,e.get()返回的类型 与 throws 声明的类型一致 * */ public <A extends Throwable>T orElseThrow(Supplier<? extends A> e) throws A { if (value != null) { return value; } else { throw e.get(); } } }总结:
1.如果需要方法有独立于类的泛型,在方法的返回类型前加”<> “即可
2. 可以使用 <> 对泛型做进一步的描述(确定范围)
例如: <T extends Number ><T super Integer>
相关文章推荐
- 关于Java中方法重写的访问修饰符和返回值类型的限制
- 关于 Java 权限修饰符 的问题总结
- 【java】关于interface成员变量的修饰符
- 关于java中synchronized的迷思,建议只作为函数修饰符使用
- JAVA关于泛型的笔记
- 关于java访问修饰符的几个测试(jdk1.8)
- 关于java中的泛型(转)
- 关于Java重载方法时的可用修饰符
- 【ThinkingInJava】37、关于泛型数组
- 关于Java中修饰符的总结(fina除外)
- 关于java泛型的使用方式。。。。
- 关于Java泛型的新解
- 关于Java中的继承与访问修饰符的一些总结
- Java - 关于泛型
- Java中关于泛型的总结(转)
- 关于Java泛型探究二
- 【Java】关于泛型:泛型类、泛型接口和泛型方法
- 关于Java中各种修饰符与访问修饰符的说明
- 关于JAVA中的static和final修饰符的一点总结
- 关于Java的泛型在所声明的对象中如何获取class或者实例的方法的总结