gpt4 book ai didi

java - 是否可以通过调用类方法来调用参数化构造函数?

转载 作者:行者123 更新时间:2023-12-01 18:38:26 25 4
gpt4 key购买 nike

据我所知,创建对象时会调用构造函数。即使没有创建对象,我也对如何调用构造函数感到困惑。例如考虑我的代码:

public class MyAdapter {

private static final String APPID = "Foobar";
private static final String ENCPWD = "r4nd0mF0064r==";
private MyDelegate delegate = null;

public MyAdapter(MyDelegate delegate) {
init(delegate);
}

private void init(MyDelegate delegate) {
try {

URL url = new URL("Some url");
QName qname = new QName("http://blahblahblahfoo.com/", "My Service");
Service service = Service.create(url, qname);
delegate = service.getPort(MyDelegate.class);

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

public MyDelegate getDelegate() {
return delegate;
}

public boolean authenticatePrimeMember(String userID, String userPwd) {

MyDelegate delegate = getDelegate();

// Other unimportant code using APPID and ENCPWD

return false;
}
}

现在,当我从另一个包调用类方法时,例如

boolean auth = MyAdapter.authenticatePrimeMember(someID, LongBeard) 

它运行完美!这不应该发生,因为我没有创建任何对象,所以 delegate无法初始化。有人可以解释一下发生了什么事吗?

更新:一个可能的错误通过了编译器并进行了部署!天啊。

最佳答案

由于 authenticatePrimeMember() 不是静态方法(并且 delegate 不是静态变量),因此您必须创建一个 MyAdapter在调用之前调用 MyAdapter 对象,否则程序甚至无法编译。再次检查您的代码。

关于java - 是否可以通过调用类方法来调用参数化构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847910/

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