java json解析类库Jackson入门

Jackson是一个高效的java bean 到json的转换工具,项目主页http://jackson.codehaus.org/ Jackson官方入门教程:http://wiki.fasterxml.com/JacksonInFiveMinutes Jackson提供了三种处理Json的方法,分别是: Streaming API :基于独立事件模型处理JSON。效率最高,是下面两种方式的基础。 分别用org.codehaus.jackson.JsonParser 和 org.codehaus.jackson.JsonGenerator 读写Json Tree Model :基于一个可变的树表示一个Json模型。最灵活 org.codehaus.jackson.map.ObjectMapper 创建树(基于JsonNode为节点) Tree Model与XML DOM类似 Data Binding:用属性存取或者注释来处理从Json到POJO的转换。最方便,常用这种API 有简单绑定和全数据绑定,同样用org.codehaus.jackson.map.ObjectMapper处理。 ObjectMapper 线程安全具有缓存机制,重用可显著提高效率,实际使用中可设为全局公用。 Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar

六月 12, 2012

Eclipse启动自动加载指定工作空间

Eclipse使用过程中,经常会有使用多个工作空间的情况,每次选择太麻烦了,可以同时设置快捷方式的不同参数和不同名字(比如就是对应的工作空间的名字)。 Eclipse启动参数 -data [workspace location] 描述 指定启动时的Workspace位置 举例 例如Workspace位置设在D:/myworkspace,则eclipse -data D:/myworkspace 实际应用 要使用 -data 命令行自变量,只要将 -data your_workspace_location(例如,-data E:\workspace)添加至快捷方式属性中的目标字段。 E:\eclipse\eclipse.exe -data E:/workspace

六月 6, 2012

更改eclipse @author的默认名字[转]

在eclipse中,给类添加注释时,@author 后默认填充登录计算机的用户名。如何去修改呢: 方法一:修改计算机登录的用户名(99.9999%的人应该都不愿意去这样做,特别是一些公司的域帐户登录的电脑根本就改不了)。 方法二:将 @author 属性写死 。 通 过菜单 Window->Preference 打开参数设置面板,然后选择:Java -> Code Style -> Code Templates ,在右侧选择Comments,将其中的Types项,然后选右边的"Edit",进入编辑模式,将 @author ${user} 中的${user}改成你自己的名字即可。 方法三:修改ini配置文件。 在eclipse的目录下找到eclipse.ini文件,在-vmargs后边添加上启动参数:-Duser.name=你想要显示的名字。 重启eclipse 推荐使用方法二 转自:http://hi.baidu.com/zdz8207/blog/item/71afb235c06b74aba71e1220.html

六月 6, 2012

我的RoboGuice入门

Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。(Guice百科) RoboGuice是Guice的Android版本。项目主页:http://code.google.com/p/roboguice/ 项目介绍翻译:http://www.cnblogs.com/xiongbo/archive/2011/05/30/2063350.html 下载和安装:http://code.google.com/p/roboguice/wiki/Installation 下载安装翻译:http://www.th7.cn/Program/Android/2011-07-06/18742.shtml 除了项目主页,这个CSDN博客是很好的学习RoboGuice的地方 以下来自:http://hi.baidu.com/%D0%A1%B7%EF%EC%E3%EC%E3/blog/item/593b269bc55a67da503d9240.html 我们知道Roboguice是基于Android和Google Guice开发的适用于Android平台的Dependency Injection 开发包。 Android应用程序可以直接使用Google Guice来为普通类进行注入操作,而对和Android平台相关的类如Activity,Context,Service,View等可以使用Roboguice 进行注入操作。 在 例Android RoboGuice 使用指南(2):第一个例子Hello World 介绍了使用RoboGuice开发的步骤,原先从Activity派生的类一般需要改成从RoboActivity派生,并添加从 RoboApplication派生的类作为Application应用的Application类。 RoboGuice支持的标记如下: @ContextScoped : 表示Scope为Context 范围 Android RoboGuice 使用指南(11): Scopes @InjectExtra : Intent的getExtra 的注入标记 @InjectPreference: 注入Preference @InjectResource: 注入Resource,如drawable, icon 等 @InjectView: 注入View @Inject: Guice标记,可以注入Android平台支持的各种服务,比如LocationManager等。 @SharedPreferencesName: SharedPreferences 名称等 此外,RoboGuice还提供了简单的消息publish/subscribe 机制,以及可以支持Dependency Injection的RoboThread, RoboAsyncTask ,RoboLooperThread 等。

五月 30, 2012

Override错误--Multiple markers at this line

错误信息如下: Multiple markers at this line - The method getCards() of type ServiceImpl must override a superclass method - implements com.service.IService.getCards 如果按一下“-”中的方法处理还不行的话,就要修改项目对应的compiler compliance level : 右键项目-属性-Java Compiler-查看是不是工程指定的是不是JavaSE-1.6,如果不是去掉use compliance前面的对勾,自己选择成1.6确定即可 以下来自:http://www.189works.com/portal.php?mod=view&aid=46816 一、java @override 报错处理 有时候在自己电脑上编译通过的java代码,在别人那里却编译不通过,总是@override报错,把@override去掉就好了,但不能从根本上解决问题。 据说这是jdk的问题,@Override是JDK5就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override 而JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。 首先要确保安装了jdk 1.6,然后,在eclipse中修改配置,在 Windows->Preferences–>java->Compiler–>compiler compliance level 中选择 1.6,刷新工程,重新编译下; 如果还是不行,就在报错的工程上,鼠标右键选择 Properties–>Java Compiler–>compiler compliance level 中选择 1.6,刷新工程,重新编译下。 二、Android之@Override详解 Android的开发者对@Override肯定是非常熟悉,不管是自己的代码中还是书上都会出现,但是他是什么意思呢?如下: @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 可以当注释用,方便阅读 编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法) 例如:在重写父类的onCreate时,在方法前面加上@Override系统可以帮你检查方法的正确性。 public void onCreate(BundlesavedInstanceState){…….} 这种写法是正确的,如果你写成 public void oncreate(BundlesavedInstanceState){…….} 这样编译器会报如下错误: The method oncreate(Bundle)of type HelloWorld must override or implement a super type method,...

五月 29, 2012

Android开发周边

1.设置adb环境变量 a.ubuntu: sudo gedit ~/.bashrc,在最后添加: export PATH=${PATH}:你的sdk的路径/platform-tools 或者export PATH=${PATH}:你的sdk的路径/tools(老版本)根据实际情况 source ~/.bashrc 不重启生效 b.windows xp下配置环境变量 右击我的电脑->属性->高级->环境变量,在下面栏中找到path这一项,点编辑,将 E:\android-sdk-windows\platform-tools添加到后面,注意先加一个;(分号)因为各个环境变量之间以分号间隔!! 还有就是android-sdk-windows下tools目录下的命令,在调试时经常用到可以一并加入path。 2.Android的UI结构试图工具 hierarchyviewer HierarchyView是Android SDK中自带了一个查看UI布局层级结构的工具。在模拟器运行的情况下,使用该工具可以将当前的Activity中的UI组件们以对象树的形式展现出来, 每一个组件所包含的属性也能窥探得到。在对象树上的任意节点可以看到该节点及以下节点的显示效果。 使用HierarchyView能深入全面的理解xml布局文件,更可以通过它来学习别人优秀的布局技巧。同时也更能更深入更全面更整体的把握xml布局文件。体会UI和 代码(java code)以及资源(res)的相互分离。

五月 24, 2012

Android EditText去除边框和获取焦点

1.android EditText 去除边框 xml配置文件中: EditText的background属性设置为@null就搞定了:android:background="@null" 代码中: editText.setBackgroundColor(0); 2.EditText获取焦点 editText.requestFocus()获取焦点

五月 10, 2012

通过shell命令一次性git checkout所有改动

一次性git checkout所有改动 git checkout|awk '{print $2}'|xargs git checkout git rm所有已删除文件 git checkout|awk '{if ( $1 == "D"){print $2}}'|xargs git rm 参考:一次向svn中增加所有新增文件 推荐图书:卓有成效的程序员

四月 25, 2012

[PHP]我的PHP基础入门

1.PHP 是一门松散类型的语言(Loosely Typed Language) 在 PHP 中,不需要在设置变量之前声明该变量。 在上面的例子中,您看到了,不必向 PHP 声明该变量的数据类型。 根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型。 在强类型的编程语言中,您必须在使用前声明变量的类型和名称。 在 PHP 中,变量会在使用时被自动声明。 2.PHP 文件的文件后缀是 “.php”、".php3" 或 “.phtml” 3.PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。 4.PHP 中的所有变量都是以 $ 符号开始的。 5.变量的命名规则 变量名必须以字母或下划线 “_” 开头。 变量名只能包含字母数字字符以及下划线。 变量名不能包含空格。如果变量名由多个单词组成,那么应该使用下划线进行分(比如 $my_string),或者以大写字母开头(比如 $myString)。 6.并置运算符(Concatenation Operator) 在 PHP 中,只有一个字符串运算符。 并置运算符 (.) 用于把两个字符串值连接起来。 要把两个变量连接在一起,请使用这个点运算符 (.) 7.使用 strlen() 函数 strlen() 函数用于计算字符串的长度。 8.使用 strpos() 函数 strpos() 函数用于在字符串内检索一段字符串或一个字符。 如果在字符串中找到匹配,该函数会返回第一个匹配的位置。如果未找到匹配,则返回 FALSE。注意:同java一样,字符串中的首个位置的 0,而不是 1。 9.运算符,循环处理和大数编程语言一致。 foreach 语句我平时在java中使用比较少,其实应该多应用。 10.函数(确实很强大的样子!) PHP 的真正威力源自于它的函数。 在 PHP 中,提供了超过 700 个内建的函数。...

四月 17, 2012

Android系统图库中扫描不到任何图片

由于系统自带的存储空间(SD卡内文件也有可能吧)内出现文件损坏,文件系统出现问题导致(无法删除)。图库在扫描时出现异常,所以扫描不到任何图片。 修复方法: USB连接电脑–手机选择打开USB存储设备–Window下打开cmd窗口—输出 chkdsk I: /F 回车即可修复完成。 其中:I 是你的存储空间对应的盘符。

四月 16, 2012