网页设计素材图片黑白电脑优化系统的软件哪个好
网页设计素材图片黑白,电脑优化系统的软件哪个好,自定义wordpress页面模板下载,投资者互动平台java 泛型和类型擦除“编译期间擦除泛型”是常识#xff08;好吧#xff0c;类型参数和实参实际上是被擦除的#xff09;。 这是由于“类型擦除”而发生的。 但这是错误的#xff0c;正如许多开发人员所假设的那样#xff0c;将..符号内指定的所有内容都删除了。 … java 泛型和类型擦除 “编译期间擦除泛型”是常识好吧类型参数和实参实际上是被擦除的。 这是由于“类型擦除”而发生的。 但这是错误的正如许多开发人员所假设的那样将..符号内指定的所有内容都删除了。 请参见下面的代码 public class ClassTest {public static void main(String[] args) throws Exception {ParameterizedType type (ParameterizedType) Bar.class.getGenericSuperclass();System.out.println(type.getActualTypeArguments()[0]);ParameterizedType fieldType (ParameterizedType) Foo.class.getField(children).getGenericType();System.out.println(fieldType.getActualTypeArguments()[0]);ParameterizedType paramType (ParameterizedType) Foo.class.getMethod(foo, List.class).getGenericParameterTypes()[0];System.out.println(paramType.getActualTypeArguments()[0]);System.out.println(Foo.class.getTypeParameters()[0].getBounds()[0]);}class FooE extends CharSequence {public ListBar children new ArrayListBar();public ListStringBuilder foo(ListString foo) {return null; }public void bar(List? extends String param) {}}class Bar extends FooString {}
} 你知道那是什么吗 类java.lang.String 类ClassTest $ Bar 类java.lang.String 类java.lang.StringBuilder 接口java.lang.CharSequence 您会看到每个类型的参数都会保留下来并且可以在运行时通过反射进行访问。 但是什么是“类型擦除” 必须删除某些内容吗 是。 实际上除结构化结构外其他所有结构均与之相关–上面的所有内容都与类的结构有关而不是与程序流有关。 换句话说有关类的类型参数及其字段和方法的元数据被保留以通过反射进行访问。 但是其余部分将被删除。 例如以下代码 ListString list new ArrayList();
IteratorString it list.iterator();
while (it.hasNext()) {String s it.next();
} 实际上将被转换为此两个片段的字节码相同 List list new ArrayList();
Iterator it list.iterator();
while (it.hasNext()) {String s (String) it.next();
} 因此将删除您在方法主体中定义的所有类型参数并在需要的地方添加强制类型转换。 另外如果定义了一个方法以接受ListT 则此T将被转换为Object或如果声明了其边界则转换为它的边界。这就是为什么您不能执行new T() 顺便说一句有关此擦除的公开问题 。 到目前为止我们已经介绍了类型擦除定义的前两点。 第三个是关于桥接方法。 我已经用这个stackoverflow问题和答案进行了说明 。 所有这两个“道德”。 首先java泛型很复杂。 但是您可以在不了解所有复杂性的情况下使用它们。 其次不要假设所有类型信息都被删除了-结构类型参数在那里因此如果需要可以使用它们但不要过分依赖反射。 翻译自: https://www.javacodegeeks.com/2014/11/on-java-generics-and-erasure.htmljava 泛型和类型擦除
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91857.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!