请看这段代码:
class Sup {
int a = 8;
public void printA() {
System.out.println(a);
}
Sup() {
printA();
}
}
public class Sub extends Sup {
int a = 9;
@Override
public void printA() {
System.out.println(a);
}
Sub() {
printA();
}
public static void main(String[] args) {
Sub sub = new Sub();
}
}
Run Code Online (Sandbox Code Playgroud)
结果:控制台打印: 0 9
我知道子类将首先调用超类constructor
但是,为什么0 9 不是8 9?
一个复杂的json字符串,我想将其转换为map,我有一个问题.
请看这个简单的测试:
public class Test {
@SuppressWarnings("serial")
public static void main(String[] args) {
Map<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("data", "{\"rowNum\":0,\"colNum\":2,\"text\":\"math\"}");
Map<String,Object> dataMap = JsonUtil.getGson().fromJson(
hashMap.get("data").toString(),new TypeToken<Map<String,Object>>() {}.getType());
System.out.println(dataMap.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
控制台打印:{rowNum=0.0, colNum=2.0, text=math}
Int转换为Double;
为什么gson会更改类型以及如何修复它?