【发布时间】:2019-12-19 08:55:53
【问题描述】:
这是课
class TransactionDetails {
@SerializedName("item")
private String item;
@SerializedName("itemPrice")
private double itemPrice;
@SerializedName("commissions")
private double commissions;
@SerializedName("itemCount")
private double itemCount;
@SerializedName("when")
private long when;
@SerializedName("tax")
private double tax;
TransactionDetails(String item, double itemPrice, double commissions, double itemCount, long when, double tax) {
this.item = item;
this.itemPrice = itemPrice;
this.commissions = commissions;
this.itemCount = itemCount;
this.when = when;
this.tax = tax;
}
String getItem() {
return item;
}
double getItemPrice() {
return itemPrice;
}
double getCommissions() {
return commissions;
}
double getItemCount() {
return itemCount;
}
long getWhen() {
return when;
}
double getTotalPrice() {
return itemCount * itemPrice;
}
String getWhenStr() {
return Utils.getInstance().getDateStr(when);
}
double getTax() {
return tax;
}
}
double getTax() 是我在代码中唯一没有使用的方法,因为我在我的应用程序中没有使用它,所以我看到“从未使用方法 getTax()”虽然我不确定它是相关
这是实例
ArrayList<TransactionDetails> transactionDetailsFull = new ArrayList<>();
这是失败的代码
new Gson().toJson(Utils.getInstance().transactionDetailsFull);
由于某种原因,上面的代码序列化了类的所有字段,除了税。只有在发布模式下才会发生这种情况:
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
在调试模式下,它可以工作。请注意,我做了@SerializedName,所以我不明白我遗漏了什么以及导致只有税没有被序列化的原因。
【问题讨论】:
标签: android serialization gson