美文网首页
15.7.4 边界处的动作

15.7.4 边界处的动作

作者: 陈晓松快点跑 | 来源:发表于2024-10-31 22:01 被阅读0次

下面的两段代码,经过编译器的编译后,产生的字节码是一样的,你敢信!!!

public class SimpleHolder {
    private Object obj;
    public void set(Object obj) {
        this.obj = obj;
    }

    public Object get() {
        return obj;
    }

    public static void main(String[] args) {
        SimpleHolder holder = new SimpleHolder();
        holder.set("Item");
        String s = (String) holder.get();
    }
}

↑↑↑
上面的代码
在调用 set() 的时候,并不做类型检查,而在调用 get() 的时候才做类型检查。就是当离开 get() 方法的时候做检查。
↑↑↑


public class GenericHolder<T> {
    private T obj;
    public void set(T obj) {
        this.obj = obj;
    }

    public T get() {
        return obj;
    }

    public static void main(String[] args) {
        GenericHolder<String> holder = new GenericHolder<String>();
        holder.set("Item");
        String s = holder.get();
    }
}

上面的代码
在调用 set() 的时候,并不做类型检查,因为擦除了。同样在调用 get() 的时候才做类型检查。


原书中还有一段很重要的话。
记住,“边界就是发生动作的地方”

相关文章

  • 泛型边界处的动作

    边界处的动作 正因为泛型的擦除,泛型带来了一个事实,可以表示没有任何意义的事物,即可以表示没有任何意义的事物。 尽...

  • 15.7.4思绪

    “我怀念的是无话不说”,不知为何总想起这句歌词,想念蔡先森他看美剧去了,刷朋友圈在学校的那些人在高唱离别,在外的人...

  • MySQL 何为幻读?如何解决?

    何为幻读? 先看看MySQL官方的介绍: 15.7.4 Phantom Rows[https://dev.mysq...

  • MySQL 什么是幻读?如何解决?

    何为幻读? 先看看MySQL官方的介绍: 15.7.4 Phantom Rows[https://dev.mysq...

  • 130. 被围绕的区域【BFS】【DFS】

    题目 思路 1、边界处的O肯定没有被包围;2、跟边界处的O连通的O也不能被包围;3、所有不被包围的O,肯定跟某个边...

  • 边缘处理

    卷积边界问题 图像卷积时边界像素不能被卷积计算进去,因为边界处像素没有完全跟kernel重叠,当ksize等于3时...

  • Endcap Cell

    在芯片制造过程中,放置在边界处的标准单元的栅极很有可能被损坏。为了防止边界处的这种损坏,我们在标准单元库中有一种特...

  • A persuit of Temporal Accuracy i

    算法的主要作用 建立完整动作的边界(temporal boundaries) 检测片段的相关性和完整性(relev...

  • 大数据计算引擎 —— Flink

    一、Flink 简介   Apache Flink 是一个用于对无边界和有边界数据流进行有状态计算的框架和分布式处...

  • 图像处理常用边缘检测算子总结

    不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘...

网友评论

      本文标题:15.7.4 边界处的动作

      本文链接:https://www.haomeiwen.com/subject/hgdidjtx.html