Java 类型转换中使用圆括号的原因
为什么返回Java 类型转换中使用圆括号的原因,java,object,methods,type-conversion,Java,Object,Methods,Type Conversion,为什么返回BlogPost的tite的行需要在引用obj和BlogPost周围加上括号?这在Java中称为类型转换。请参阅Oracle Java文档中的Casting对象一节:这在Java中称为类型转换。请参阅本Oracle Java文档中的Casting对象一节:假设obj的引用与BlogPost的引用类型不同,则语句((BlogPost)obj)会将obj转换为BlogPost类型。不带括号的语句: if (obj instanceof String) { return (Strin
BlogPost
的tite的行需要在引用obj
和BlogPost
周围加上括号?这在Java中称为类型转换。请参阅Oracle Java文档中的Casting对象一节:这在Java中称为类型转换。请参阅本Oracle Java文档中的Casting对象一节:假设obj
的引用与BlogPost
的引用类型不同,则语句((BlogPost)obj)
会将obj
转换为BlogPost
类型。不带括号的语句:
if (obj instanceof String) {
return (String) obj;
} else {
return ((BlogPost) obj).getTitle();
(BlogPost) obj.getTitle();
这意味着:将getTitle()
的返回值强制转换为BlogPost
。与父母在一起时使用以下语句:
if (obj instanceof String) {
return (String) obj;
} else {
return ((BlogPost) obj).getTitle();
(BlogPost) obj.getTitle();
方法:将
obj
强制转换为类型BlogPost
,然后在类型BlogPost
的实例上调用方法getTitle()
,假设obj
的引用的类型与BlogPost
不同,则语句((BlogPost)obj)
是否将obj
转换为类型BlogPost
。不带括号的语句:
if (obj instanceof String) {
return (String) obj;
} else {
return ((BlogPost) obj).getTitle();
(BlogPost) obj.getTitle();
这意味着:将getTitle()
的返回值强制转换为BlogPost
。与父母在一起时使用以下语句:
if (obj instanceof String) {
return (String) obj;
} else {
return ((BlogPost) obj).getTitle();
(BlogPost) obj.getTitle();
方法:将
obj
转换为类型BlogPost
,然后在类型BlogPost
的实例上调用方法getTitle()
,这将obj
转换为BlogPost
,并在此上下文下执行getTitle
((BlogPost) obj).getTitle();
然而,这将对obj
执行getTitle
(这可能不是为这个类定义的),并将结果转换为BlogPost
(这对String->BlogPost
不起作用)
最后,这是代码执行顺序的决定因素,以便让
obj
拥有正确的上下文。这将把obj
转换为BlogPost
并在此上下文下执行getTitle
((BlogPost) obj).getTitle();
然而,这将对obj
执行getTitle
(这可能不是为这个类定义的),并将结果转换为BlogPost
(这对String->BlogPost
不起作用)
最后,这是决定代码执行顺序的一个因素,以便让obj拥有正确的上下文;
将对象强制转换为blogpost类型,然后调用getTitle()方法。
如果它写为(BlogPost)obj.getTitle();,它将从getTitle()方法获取返回值,然后将其强制转换为BlogPost()的类型。((BlogPost)obj);
将对象强制转换为blogpost类型,然后调用getTitle()方法。
如果它写为(BlogPost)obj.getTitle();,它将从getTitle()方法获取返回值,然后将其转换为BlogPost()类型