Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 101:baseApp=(MyApp)this.getContext()做什么?_Java_Android_Oop_Constructor_Instance - Fatal编程技术网

Java 101:baseApp=(MyApp)this.getContext()做什么?

Java 101:baseApp=(MyApp)this.getContext()做什么?,java,android,oop,constructor,instance,Java,Android,Oop,Constructor,Instance,当我这样做时: baseApp = (MyApp)this.getContext(); 我到底在做什么 与这样做相反: baseApp = myApp.doSomething(); 我关心的不是方法,而是理解结构。 上面两个有什么不同?为什么 做(MyApp)有什么意义 做(MyApp)有什么意义 它是引用类型转换 它检查通过计算RHS生成的引用(即this.getContext())是否与MyApp兼容,然后将其用作表达式的结果(具有该类型)。如果RHS表达式提供的引用不适用于兼容类型

当我这样做时:

 baseApp = (MyApp)this.getContext();
我到底在做什么

与这样做相反:

 baseApp = myApp.doSomething();
我关心的不是方法,而是理解结构。 上面两个有什么不同?为什么

做(MyApp)有什么意义

做(MyApp)有什么意义

它是引用类型转换

它检查通过计算RHS生成的引用(即
this.getContext()
)是否与
MyApp
兼容,然后将其用作表达式的结果(具有该类型)。如果RHS表达式提供的引用不适用于兼容类型,则将引发运行时异常

相比之下

  baseApp = myApp.doSomething();
正在调用
doSomething()
方法并分配它。。。不用打字。如果
doSomething()
方法未提供正确类型的值,则会出现编译错误


作为记录,这里没有“实例化”。实例化是使用
new
运算符1完成的


1-。。。或者通过调用特定的反射方法。

首先,您从哪里调用它?
活动

第一行是将当前对象上下文强制转换为
MyApp
对象,然后将其分配给名为
baseApp
的对象。我还假设
baseApp
属于
MyApp
类型

第二行是将名为
doSomething()
的方法返回的值赋给
baseApp



但是需要更多的信息来进行进一步比较。

在这两种情况下都没有使用构造函数。它表示在创建MyApp的实例时,在MyApp中使用的
上下文
变量的强制转换。好的,这是我学到的一件事。你能解释更多或者给出更多的方向吗?(MyApp)很好。打字!顺便说一句,oracle文档是一种简单易懂的学习方式。谢谢你的指导