如何通过它的对象在 class 的整个调用链中修改变量?
How can I modify a variable throughout the chain of calling of class through it's objects?
我有 3 个 classes。
class ClientConnect(){
URL url = new URL("http:XXX.XX.XX");
Api api = new Api(url);
api.checks.count();
}
class Api{
...
URL url;
Checks checks = new Checks(url);
public Api(URL url){
url = new URL(url+"/api");
}
}
class Checks{
...
public Checks(URL url){
url = new URL(url+"/checks");
}
public void count(){
url = new URL(url+"/count");
System.out.println(url);
}
}
我希望调用 api.checks.count() 的输出为 http:XXX.XX.XX.XX/api/checks/count ,但我得到的是空值。我怎样才能将修改后的 URL 转发到 class 的下一个链中。是的,我也可以用其他方式做到这一点,但我只想使用 classes 的对象链接所有这些。
问题出在Apiclass,我只是想在里面创建Checksclass的对象时将修改后的URL发送到那里。
修改Api
构造函数,将url
传给URL
构造函数after你initialize url
(正如@Jonk在评论中指出的那样,应该是this.url
)。像,
URL url;
Checks checks; // <-- url is null.
public Api(URL url){
this.url = new URL(url+"/api");
checks = new Checks(this.url); // <-- now url is initialized.
}
我有 3 个 classes。
class ClientConnect(){
URL url = new URL("http:XXX.XX.XX");
Api api = new Api(url);
api.checks.count();
}
class Api{
...
URL url;
Checks checks = new Checks(url);
public Api(URL url){
url = new URL(url+"/api");
}
}
class Checks{
...
public Checks(URL url){
url = new URL(url+"/checks");
}
public void count(){
url = new URL(url+"/count");
System.out.println(url);
}
}
我希望调用 api.checks.count() 的输出为 http:XXX.XX.XX.XX/api/checks/count ,但我得到的是空值。我怎样才能将修改后的 URL 转发到 class 的下一个链中。是的,我也可以用其他方式做到这一点,但我只想使用 classes 的对象链接所有这些。
问题出在Apiclass,我只是想在里面创建Checksclass的对象时将修改后的URL发送到那里。
修改Api
构造函数,将url
传给URL
构造函数after你initialize url
(正如@Jonk在评论中指出的那样,应该是this.url
)。像,
URL url;
Checks checks; // <-- url is null.
public Api(URL url){
this.url = new URL(url+"/api");
checks = new Checks(this.url); // <-- now url is initialized.
}