我通常用python和C编程,所以java的世界让我很困惑。
我正在寻找一种使我的代码更优雅的方法,在这些其他语言中,我会通过引用(或指针,取决于语言)传递变量来实现。
在代码的某一点上,我重复了一段代码几次,因为每一次都依赖于先前的特定情况。总之,可以理解的是,我想用相同的代码块修改几个变量,为此我首先要选择我想修改的变量,为它分配一个"昵称",然后使用昵称但修改原始变量。
所以我想改变这个
if (condition){
if (condition){
//modify var1
} else {
//modify var2
}
}else if (condition){
if (condition){
//modify var1
} else {
//modify var2
}
}
if (condition){
nickname = var1;
} else {
nickname = var2;
}
if (condition){
// modify nickname
}else if (condition){
// modify nickname
}
在Java中有办法做到这一点吗?或者我(使用这种方法)有多余的代码?
在C中,我可以这样做
// nickname as pointer from type of var1 and var2
if (condition){
nickname = &var1;
} else {
nickname = &var2;
}
// Work over nickname
给定
if (condition){
nickname = var1;
} else {
nickname = var2;
}
仅当var1
和var2
为:
- 对象实例的引用(即不是原始值)
- 可变的,即具有可以改变的内部状态(
String
是不可变的) - 相互类型兼容。
nickname
必须从var1
和var2
中分配
在这种情况下,你可以使用nickname
来修改被引用对象的内部状态。