gpt4 book ai didi

java - 将变量声明为某种类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:07:34 24 4
gpt4 key购买 nike

假设我们有以下代码块:

if (thing instanceof ObjectType) {
((ObjectType)thing).operation1();
((ObjectType)thing).operation2();
((ObjectType)thing).operation3();
}

所有的类型转换都让代码看起来很丑陋,有没有一种方法可以在该代码块中将“thing”声明为 ObjectType?我知道我能做到

OjectType differentThing = (ObjectType)thing;

并从那时起使用“differentThing”,但这会给代码带来一些困惑。有没有更好的方法来做到这一点,可能像

if (thing instanceof ObjectType) {
(ObjectType)thing; //this would declare 'thing' to be an instance of ObjectType
thing.operation1();
thing.operation2();
thing.operation3();
}

我很确定过去有人问过这个问题,但我找不到了。请随时指出可能的重复项。

最佳答案

不,一旦声明了变量,该变量的类型就固定了。我相信改变变量的类型(可能是暂时的)会带来比以下更多的困惑:

ObjectType differentThing = (ObjectType)thing;

您认为令人困惑的方法。这种方法被广泛使用和惯用——当然,在需要它的地方。 (这通常有点代码味道。)

另一种选择是提取方法:

if (thing instanceof ObjectType) {
performOperations((ObjectType) thing);
}
...

private void performOperations(ObjectType thing) {
thing.operation1();
thing.operation2();
thing.operation3();
}

关于java - 将变量声明为某种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11186807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com