使用 GsonFormat 解析数组形式的 json 作者: Chuwen 时间: 2020-10-12 分类: Android,Java 评论 > 记下笔记,以访忘记 # 假设有以下数据 ``` [{ "CarId": 1, "Time": "2017-11-26 16:58:11", "Cost": 10 }, { "CarId": 1, "Time": "2017-11-26 16:58:19", "Cost": 20 }, { "CarId": 1, "Time": "2017-11-26 16:58:24", "Cost": 30 }, { "CarId": 1, "Time": "2017-11-26 16:58:28", "Cost": 40 }] ``` # 以下类 ``` public class GetCarAccountRecord { /** * CarId : 1 * Time : 2017-11-26 04:58:11 * Cost : 10 */ private int CarId; private String Time; private int Cost; public int getCarId() { return CarId; } public void setCarId(int CarId) { this.CarId = CarId; } public String getTime() { return Time; } public void setTime(String Time) { this.Time = Time; } public int getCost() { return Cost; } public void setCost(int Cost) { this.Cost = Cost; } } ``` # 使用 Gson 解析,然后遍历输出 ``` List list = new Gson().fromJson(jsonObject.optJSONArray("ROWS_DETAIL").toString(), new TypeToken>() {}.getType()); for (GetCarAccountRecord getCarAccountRecord : list) { Log.i("小车编号:", String.valueOf(getCarAccountRecord.getCarId())); Log.i("充值金额:", String.valueOf(getCarAccountRecord.getCost())); } ```
Java 创建子线程,使它立即开始执行 作者: Chuwen 时间: 2019-11-23 分类: Java 评论 ```java public class InvokeRun extends Thread { private int i; @Override public void run() { for(; i<100; i++){ System.out.println("["+Thread.currentThread().getName()+"]\t"+i); } } public static void main(String[] args) throws Exception{ for(int i=0; i<100; i++){ System.out.println(Thread.currentThread().getName()+"\t"+i); if(i == 20){ new InvokeRun().start(); new InvokeRun().start(); //让当前主线程休眠 1ms //它会去执行另一个就绪状态的线程 //这样的话,子线程就可以立即开始执行 Thread.sleep(1); } } } } ```
Java 中的标号:outer 的作用 作者: Chuwen 时间: 2019-11-08 分类: Java 评论 # 标号 label > *标号* 提供了一种简单的 break 语句所不能实现的控制循环的方法,当在循环语句中遇到break时,不管其它控制变量,都会终止。 > 但是,当你嵌套在几层循环中想退出循环时又会怎样呢? > 正常的 `break` 只退出一重循环,你可以用标号标出你想退出哪一个语句。 ``` char a; outer: //this is the label for the outer loop for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { a=(char)System.in.read(); if(a=='b') break outer; if(a=='c') continue outer; } } ``` > 在这个例子中,循环从键盘接受 100 个输入字符,输入“b”字符时,`break outer` 语句会结束两重循环。 注意:`continue outer` 语句,它告诉计算机*退出现在的循环*并**继续执行 `outer 循环`**。 例子2: > 求 100-200 之间的质数 ``` System.out.println("100~200 的质数"); int n = 0; outer: for (int i=101; i<200; i+=2){ for (int j = 2; j
Java / Android(安卓) 包名 (Package Name)命名规则 作者: Chuwen 时间: 2018-05-02 分类: Android,Java 评论 # 因为包名是唯一标识,为了避免与其他应用的包名重复,产生冲突,您可以这样命名: ---------- # 1. 将您的域名反转过来作为前缀,比如如果您的域名是 `nowtime.cc`,那么包名可以用 `cc.nowtime` 开头,这样可以有效的避免重复 ## 1-1. 在后面增加描述产品名称的字符,比如果果您的应用是视频应用,可以命名为 `cc.nowtime.video` ---------- # 2. 如果您没有域名,可以使用自己的邮箱作为前缀 ## 2-1. 比如您的邮箱是 wenzhouchan@gmail.com,那么包名可以这样命名 `com.gmail.wenzhouchan` ## 2-2. 在后面增加描述产品名称的字符,比如果果您的应用是视频应用,可以命名为 `com.gmail.wenzhouchan.video`