请参考下面的Java代码:
class Base{
Base(){
System.out.println("Base Constructor");
method();
}
void method(){}
}
class Derived extends Base{
int var = 2;
Derived(){
System.out.println("Derived Constructor");
}
@Override
void method(){
System.out.println("var = "+var);
}
}
class Test2{
public static void main(String[] args) {
Derived b = new Derived();
}
}
Run Code Online (Sandbox Code Playgroud)
看到的输出是:
Base Constructor
var = 0
Derived Constructor
Run Code Online (Sandbox Code Playgroud)
我认为var = 0的发生是因为Derived对象是半初始化的; 类似于Jon Skeet在这里所说的
我的问题是:
如果尚未创建Derived类对象,为什么会调用重写的方法?
在什么时间点,var赋值为0?
是否存在需要此类行为的用例?
我期待使用API Gateway和Lambda构建API业务流程层.
对于我的基本用例,我希望在Lambda中有一个Python脚本,它只会从客户端(在本例中为移动应用程序)中继API网关收到的请求,并将外部HTTPS服务作为后端调用.
我的问题是:我们的移动客户端今天使用客户端证书与我们的HTTPS端点通信.如何在新的API Gateway + Lambda设置中拦截该客户端证书?
在Android中的选项菜单中单击某个MenuItem时,我需要在同一菜单中更改不同MenuItem的标题.这样做的方法是什么?
单击选项菜单中的MenuItem时,将调用onOptionsItemSelected(MenuItem menuitem).您可以更改在onOptionsItemSelected(MenuItem menuitem)中作为参数传递的MenuItem的标题,但不能更改任何其他MenuItem的标题.我需要知道如何更改未作为参数传递给onOptionsItemSelected()的MenuItem的标题,但它属于同一个Menu.
我没有找到一种方法来处理在onOptionsItemSelected方法中包含Menu的问题(在单击任何MenuItem时调用它).
非常感谢.