Java 中的类型转换以及动态类型与静态类型

2024-03-08

我正在学习静态类型与动态类型,并且我已经了解了它的大部分内容,但这种情况仍然让我困惑。

如果上课B延伸A, 我有:

A x = new B();

是否允许以下​​行为?:

B y = x;

或者是否需要显式转换?:

B y = (B) x;

Thanks!


显式转换是required, 还会succeed.

之所以需要它是因为它不always成功:变量声明为A x可以引用不存在的实例instanceof B.

// Type mismatch: cannot convert from Object to String
Object o = "Ha!";
String s = o; // DOESN'T COMPILE

// Compiles fine, cast succeeds at run-time
Object o = "Ha!";
String s = (String) o;

// Compiles fine, throws ClassCastException at run-time
Object o = Boolean.FALSE;
String s = (String) o; 

是否需要演员阵容已确定only通过所涉及变量的声明类型,NOT通过它们在运行时引用的对象的类型。即使可以在编译时解析引用也是如此。

final Object o = "Ha!";
String s = o; // STILL doesn't compile!!!

在这里,尽管final多变的o将始终引用一个instanceof String,其声明的类型仍然是Object,因此显式(String)演员阵容是still需要编译。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的类型转换以及动态类型与静态类型 的相关文章

  • JSF2.0 中的空白输入字段未设置为 NULL

    我有一个支持 bean 其中 fileld 为 Long Double Integer String 当我没有在输入字段中指定任何内容时 长整型 整数和双精度值将被视为零 而不是空 我正在使用 tomcat 来部署我的应用程序 有什么解决办
  • 在 Spark 中写入 JSON 时保留具有空值的键

    我正在尝试使用 Spark 编写 JSON 文件 有一些键有null作为价值 这些在中显示得很好DataSet 但是当我写入文件时 密钥会丢失 我如何确保它们被保留 写入文件的代码 ddp coalesce 20 write mode ov
  • 合并 2 个 .jks 信任库文件

    我正在使用启用了 SSL 的 Tomcat 并使用信任库进行客户端身份验证 我有两个 jks trustore 文件 第一个 我将其用于 PROD 环境 另一个用于 TEST 环境客户端证书 我在 Tomcat 上部署了 Web 应用程序
  • import java 导入错误:没有名为 java 的模块

    我似乎遇到了障碍 根本无法解决这个问题 任何人都可以帮我弄清楚为什么我无法导入 java 模块吗 Error Traceback most recent call last File datasource config py line 3
  • 如何将参数传递给Workmanager DoWork方法

    我想安排任务在 24 小时后从数据库中删除 public class WorkManager extends Worker public WorkManager NonNull Context context NonNull WorkerP
  • Maven项目中的HDF5

    我正在尝试将 hdf hdf5lib H5 导入到 NetBeans 中的 Maven 项目中 它有这个作为导入行 import hdf hdf5lib H5 正如这里所建议的 https support hdfgroup org prod
  • bean 的 CDI @TransactionAttribute

    我正在尝试CDI在测试应用程序上 我有一个DAO它注入一个托管的容器JTA像这样的持久化上下文 public class TestDAO implements Serializable PersistenceContext private
  • TableModel setCellEditable 并自动将值设置回 false

    我目前正在尝试在 JTable 中实现 JPopupMenu 它允许解锁单元格以进行编辑 Override public void actionPerformed ActionEvent e if e getActionCommand Un
  • 是否有任何理由使用 ZoneId.of("UTC") 而不是 ZoneOffset.UTC ?

    有什么理由使用ZoneId of UTC 代替ZoneOffset UTC 我们知道两者之间的区别 如ZoneOffset UTC 和 ZoneId of UTC 之间有什么区别 https stackoverflow com questi
  • Android Fabric Crashlytics 崩溃,初始化时未找到资源

    我从 google play 控制台收到了这份报告 看起来 Fabric 在启动时崩溃了 因为某些用户出现了资源未找到的异常 java lang RuntimeException at android app ActivityThread
  • 简单的Java程序插入USB热点后速度慢100倍

    我有以下Java程序 class Main public static void main String args throws java io IOException long start System nanoTime java io
  • 使用 Copy.CopyIntoItems Web 服务将文件上传到 SharePoint 2010 时收到 400 错误请求

    SharePoint 新手 我尝试使用 Java 的 CopyIntoItems Web 服务方法将文档上传到 SharePoint 但不断收到 400 错误请求 我使用 Java 的 wsimport 从 wsdl 文件生成类文件 这是我
  • 如何注册 org.springframework.integration.monitor.IntegrationMBeanExporter

    根据http www ibm com support knowledgecenter en SS7K4U 8 5 5 com ibm websphere nd multiplatform doc ae cspr data access tr
  • 基于磁盘的 HashMap [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 是否有 或者是否有可用的库 允许我拥有基于磁盘的 HashMap 它不需要是原子的或任何东西
  • 相对重力

    我最近开始使用jMonkey引擎 这非常好 但我在尝试实现相对重力时陷入了困境 我想让行星彼此围绕轨道运行 不一定是完美的圆形轨道 取决于速度 所以每个对象都应该影响其他对象 我现在拥有的 关闭全球重力 bulletAppState get
  • 如何在列表视图中选择时启用视频序列自动播放?

    大家好 有人可以与我分享一下我如何编写我的 viewvideo java 类 以便它允许自动播放视频功能 自动排序在列表视图中播放所选视频的任务 从当前位置到最新录制的视频 按顺序直到最新的视频播放完毕 这类似于 YouTube 自动播放功
  • 使用 ProcessBuilder 启动 CMD

    我尝试使用以下代码在 Windows 中启动 CMD 应用程序 但它无法按预期工作 来自不同网站的几个示例表明 cmd 作为 ProcessBuilder 构造中的参数应该有效 我需要做什么才能让我的 Java 应用程序在 Windows
  • Java 中有类似 .NET 的 NotImplementedException 的东西吗?

    有没有类似 NET 的东西NotImplementedException在Java中 康芒斯朗 http commons apache org proper commons lang javadocs api 2 6 org apache
  • SWT StyledText 有高度限制吗?

    我正在尝试创建一个应用程序 其中包含在 ScrolledComposite 中显示的 StyledText 框 我在 StyledText 框中显示大量行时遇到困难 超过 2 550 行似乎会导致问题 StyledText 框本身不能有滚动
  • Android NDK - 仅用 C/C++ 编写

    有没有一种可能的方法可以使用 C C 编写整个 NDK 应用程序 而无需像 hello jni 示例项目 HelloJni java 中那样的 Java 入门 类 以某种方式创建一个 HelloJni c 来执行相同的操作 从 Androi

随机推荐

  • PHP SoapClient 调用响应缺少部分答案

    我在 PHP 解析 SoapClient 调用响应时遇到问题 对于某些类型的答案 它返回空 stdClass 对象的数组 而不是初始化的 stdClass 对象 服务器是在tomcat6上使用axis2部署的java webservice
  • 如何在android datepicker中显示该月的前三个字母

    在日期选择器中 我尝试以字母形式获取月份 其他则以整数形式 它返回月份的全名 但我想要这个月的前三封信 i tried SimpleDateFormat sdf new SimpleDateFormat yyyy MMMM dd Syste
  • 将 div 垂直居中,高度为 auto

    好吧 我得到了这个结构 parent max width 800px height auto margin auto child position absolute width 100 height 52px display none di
  • 如何设置jupyter笔记本在浏览器上自动打开

    因此 我在尝试打开 jupyter 笔记本时没有遇到问题 但由于某种原因 无论我尝试做什么 我都无法让它在浏览器中自动打开 我关注这些帖子没有效果 无法在浏览器上打开 jupyter ipython 笔记本 https stackoverf
  • 在 ASP.Net Core 应用程序启动期间运行异步代码

    更改函数签名后ConfigureServices为了异步 最初它只是一个无效的同步函数 并且应用程序工作得很好 我收到以下错误 无法找到所需的服务 请致电添加所有必需的服务IServiceCollection AddAuthorizatio
  • 在 C# 中反转 md5 哈希算法 [重复]

    这个问题已经存在了 可能的重复 反转 MD5 哈希值 https stackoverflow com questions 1471654 reversing an md5 hash 在c 中给出这个方法 public string Calc
  • 在管道 grep 到 grep 后保留颜色

    有一个类似的问题grep 后保留 ls 颜色 https stackoverflow com questions 867877 preserve ls colouring after greping但令我烦恼的是 如果将彩色 grep 输出
  • 在报表生成器/SSRS 中的每个页面上重复垂直线

    我希望在报告的每一页上都包含一条垂直线 该线从报告正文的顶部延伸到底部 我怎样才能实现这个目标 我尝试过使用 RepeatWith 但它似乎不起作用 该行仅出现在第一页上 Thanks 这仅仅是为了外观和感觉的目的吗 我会用这样的线创建一个
  • Scalacheck 不会正确报告失败的情况

    我写了以下规范 An IP4 address should belong to just one class in val addrs for a lt Gen choose 0 255 b lt Gen choose 0 255 c lt
  • 有 jQuery jEditable 多选插件吗?

    我正在使用优秀的j可编辑 http www appelsiini net projects jeditable用于在我的页面上进行一些就地编辑的插件 有一个地方我需要一个多选元素 有没有 jEditable 插件可以让我做到这一点 我一直在
  • c++ boost::bind 存储不同类型的函数指针

    我今天查了很多资料 却一无所获 有什么方法可以存储从 boost bind 不同类型返回的仿函数吗 我找到了一个使用 boost variants 的示例 但不确定是否需要这样做 为简单起见 Foo 和 Bar 已被简化 include
  • 哪种适用于 Node.js 的 MySQL 驱动程序可以在 Windows 上运行?

    我想在 Windows 上将 MySQL 与 Node js 一起使用 我尝试过使用节点数据库mysql https github com mariano node db mysql 不过好像不支持Windows 是否还有其他适用于 Win
  • 每 X 时间运行一次后台任务

    我想启动一项服务 偶尔在所有平台上检查是否有通知出现 有没有连接所有平台的nuget或者一些例子 您可以使用Device StartTimer TimeSpan minutes 方法启动一个后台任务 该任务将在给定的时间跨度后重复 这是一个
  • JavaFX 中的可复制标签/文本字段/LabeledText

    我只想在 JavaFX 中创建可复制的标签 我尝试创建没有背景 没有焦点边框和默认背景颜色的 TextField 但没有成功 我发现了很多关于如何从控制中删除焦点背景的问题 但所有这些看起来都像是 黑客 是否有任何标准解决方案来实现可复制文
  • Eclipse 4.2 和 Java 8

    我找到了这个page http www eclipse org eclipse development plans eclipse project plan 4 2 xml声明 Java 8 对 Juno 的支持已推迟 但我找不到更多信息
  • 使用 C# 解析 JSON 数据

    我有大约 7000 行 JSON 数据需要解析 可以看到仅部分示例here https graph facebook com 367501354973 access token 2227470867 7C2 fYhXYnFbw5vb6GXN
  • 在选择选项中使用@click - Vue.js 2

    我想在选择选项中使用 click 到目前为止我有
  • 使用 HoloEverywhere 构建 Android Studio 项目失败

    每当我尝试构建包含 HoloEverywhere 作为依赖项的项目时 我都会遇到以下错误 Gradle 失败 构建因异常而失败 出了什么问题 任务 HoloEverywhere Library processDebugManifest 执行
  • 意外结果 - Google Autocomplete 针对约克郡

    我使用 Google 地图自动完成 API 得到针对 约克郡 的意外结果 我已过滤结果以仅显示英国地区 请帮我 以下是我在搜索约克郡时得到的结果 北约克郡 Royaume Uni 约克郡东方 Reino Unido 南约克郡 统一王国 下面
  • Java 中的类型转换以及动态类型与静态类型

    我正在学习静态类型与动态类型 并且我已经了解了它的大部分内容 但这种情况仍然让我困惑 如果上课B延伸A 我有 A x new B 是否允许以下 行为 B y x 或者是否需要显式转换 B y B x Thanks 显式转换是required