`

java commons-lang

    博客分类:
  • java
阅读更多
 

Jakarta Commnos lang学习(1)——ReflectionToStringBuilder

分类: Java技术 2032人阅读 评论(0) 收藏 举报
今天开始学习Jakarta Commons Lang,看的是O'Reilly的《Jakarta Commons Cookbook》。
ReflectionToStringBuilder类是用来实现类中的toString()方法的类,它采用Java反射机制(Reflection),通过reflection包中的AccessibleObject类绕过访问控制而直接存取对象的私有成员。因此在使用该类时,要注意运行环境的安全策略。
例(取自《Jakarta Commons Cookbook》):
PoliticalCandidate类
package sample;

import java.math.*;
import java.util.*;

import org.apache.commons.lang.builder.ReflectionToStringBuilder;

public class PoliticalCandidate {

    
private String lastName;
    
private String firstName;
    
private Date dateOfBirth;
    
private BigDecimal moneyRaised;
    
private State homeState;
    
    
public String toString() {
        
return ReflectionToStringBuilder.toString(this);
    }

    
    
public PoliticalCandidate(String lastName, String firstName,
            Date dob, BigDecimal money, State s) 
{
        
this.lastName = lastName;
        
this.firstName = firstName;
        
this.dateOfBirth = dob;
        
this.moneyRaised = money;
        
this.homeState = s;
    }


    
/**
     * 
@param lastName the lastName to set
     
*/

    
public void setLastName(String lastName) {
        
this.lastName = lastName;
    }


    
/**
     * 
@return the lastName
     
*/

    
public String getLastName() {
        
return lastName;
    }


    
/**
     * 
@param firstName the firstName to set
     
*/

    
public void setFirstName(String firstName) {
        
this.firstName = firstName;
    }


    
/**
     * 
@return the firstName
     
*/

    
public String getFirstName() {
        
return firstName;
    }


    
/**
     * 
@param dateOfBirth the dateOfBirth to set
     
*/

    
public void setDateOfBirth(Date dateOfBirth) {
        
this.dateOfBirth = dateOfBirth;
    }


    
/**
     * 
@return the dateOfBirth
     
*/

    
public Date getDateOfBirth() {
        
return dateOfBirth;
    }


    
/**
     * 
@param moneyRaised the moneyRaised to set
     
*/

    
public void setMoneyRaised(BigDecimal moneyRaised) {
        
this.moneyRaised = moneyRaised;
    }


    
/**
     * 
@return the moneyRaised
     
*/

    
public BigDecimal getMoneyRaised() {
        
return moneyRaised;
    }


    
/**
     * 
@param homeState the homeState to set
     
*/

    
public void setHomeState(State homeState) {
        
this.homeState = homeState;
    }


    
/**
     * 
@return the homeState
     
*/

    
public State getHomeState() {
        
return homeState;
    }

}

State类
package sample;

import org.apache.commons.lang.builder.ReflectionToStringBuilder;

public class State {
    
    
private String shortName;
    
private String name;
    
    
public State(String shortName, String name) {
        
this.shortName = shortName;
        
this.name = name;
    }

    
    
public String toString() {
        
return ReflectionToStringBuilder.toString(this);
    }


    
/**
     * 
@param shortName the shortName to set
     
*/

    
public void setShortName(String shortName) {
        
this.shortName = shortName;
    }


    
/**
     * 
@return the shortName
     
*/

    
public String getShortName() {
        
return shortName;
    }


    
/**
     * 
@param name the name to set
     
*/

    
public void setName(String name) {
        
this.name = name;
    }


    
/**
     * 
@return the name
     
*/

    
public String getName() {
        
return name;
    }

}

测试采用的是JUnit3.81
/**
 * 
 
*/

package sample;

import java.math.*;
import java.util.*;

import junit.framework.TestCase;

/**
 * 
@author gnehzuil
 *
 
*/

public class TestToStirng extends TestCase {

    
/**
     * Test method for {
@link sample.PoliticalCandidate#toString()}.
     
*/

    
public void testToString() {
        State va 
= new State("VA""Virginia");
        
        Calendar calendar 
= new GregorianCalendar();
        calendar.set(Calendar.YEAR, 
1743);
        calendar.set(Calendar.MONTH, Calendar.APRIL);
        calendar.set(Calendar.DAY_OF_MONTH, 
13);
        Date dob 
= calendar.getTime();
        
        BigDecimal moneyRaised 
= new BigDecimal(293829292.93);
        
        PoliticalCandidate candidate 
= 
            
new PoliticalCandidate("Jefferson""Thomas"
                    dob, moneyRaised, va);
        
        System.out.println(candidate);
    }


}
输出:
PoliticalCandidate[lastName=Jefferson,firstName=Thomas,dateOfBirth=Sat Apr 13 20:16:44 CST 1743,moneyRaised=293829292.930000007152557373046875,homeState=State[shortName=VA,name=Virginia]]
 
Process finished with exit code 0

 

分享到:
评论

相关推荐

    java common-lang-commons-lang.jar

    commons-lang.jar是日常编程中必不可少的一个jar包,在日常java编程中,经常会使用到commons-lang.jar包,还没有准备commons-lang.jar包的用户可以前来下载使用,本站不仅为大家提供了commons-lang3-3.1.jar下载地址

    commons-lang3-3.9-API文档-中文版.zip

    标签:apache、commons、lang3、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    commons-lang3-3.10-API文档-中文版.zip

    标签:apache、commons、lang3、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    commons-lang-2.4.rar代码及jar文件

    这个"commons-lang-2.4.rar"压缩包包含了两个子文件,分别是"commons-lang-2.4-bin.zip"和"commons-lang-2.4-src.zip"。 "commons-lang-2.4-bin.zip"文件是编译后的二进制版本,包含了commons-lang库的JAR文件。这...

    commons-lang3-3.12.0-API文档-中文版.zip

    标签:apache、lang3、commons、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    commons-lang3-3.12.0-API文档-中英对照版.zip

    标签:apache、lang3、commons、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,...

    commons-lang3-3.4-API文档-中文版.zip

    标签:apache、commons、lang3、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    commons-lang3-3.7-API文档-中文版.zip

    标签:apache、lang3、commons、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    commons-lang3-3.3.2-API文档-中文版.zip

    标签:apache、commons、lang3、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    commons-lang3-3.10-API文档-中英对照版.zip

    标签:apache、commons、lang3、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,...

    commons-lang-2.4-API文档-中文版.zip

    赠送jar包:commons-lang-2.4.jar; 赠送原API文档:commons-lang-2.4-javadoc.jar; 赠送源代码:commons-lang-2.4-sources.jar; 赠送Maven依赖信息文件:commons-lang-2.4.pom; 包含翻译后的API文档:commons-...

    commons-lang3-3.5-API文档-中文版.zip

    标签:apache、lang3、commons、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    commons-lang3-3.7 和 commons-lang-2.6 合集

    相反,如果需要保持与旧版Java的兼容性,`commons-lang-2.6.jar`则更为合适。 总的来说,Apache Commons Lang是一个非常有价值的库,它极大地扩展了Java的标准功能,提高了开发效率。无论你是使用Lang3的最新特性...

    commons-lang3-3.8-API文档-中英对照版.zip

    标签:apache、commons、lang3、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,...

    java-webservice-json需要相关jar包(commons-beanutils,commons-lang-r,ezmorph

    使用java编写webservice时,使用了json参数,则调用jar包,包括:commons-beanutils-1.7.0.jar,commons-lang-2.2.jar,ezmorph-1.0.5.jar,json_simple.jar,org.json.jar

    commons-lang.jar

    commons-lang.jar、Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache....

    commons-lang3-3.0-bin.zip

    Apache Commons Lang 是一个 Java 类库,它为 Java SDK 增加了大量有用的实用工具类,弥补了标准库中的一些不足。"commons-lang3-3.0-bin.zip" 是 Apache Commons Lang 的第 3.0 版本的二进制分发包。这个压缩包包含...

    commons-lang3-3.12.0 jar包

    Apache Commons Lang是Java编程语言中的一个实用工具库,它提供了许多增强和补充Java核心类库功能的方法。在本例中,我们关注的是`commons-lang3-3.12.0.jar`包,这是Apache Commons Lang项目的最新版本。这个库包含...

    commons-lang-2.4-API文档-中英对照版.zip

    赠送jar包:commons-lang-2.4.jar; 赠送原API文档:commons-lang-2.4-javadoc.jar; 赠送源代码:commons-lang-2.4-sources.jar; 赠送Maven依赖信息文件:commons-lang-2.4.pom; 包含翻译后的API文档:commons-...

    commons-lang3-3.1.jar 附导入教程.rar

    commons-lang.jar是日常编程中必不可少的一个jar包,在日常java编程中,经常会使用到commons-lang.jar包,还没有准备commons-lang.jar包的用户可以前来下载使用,这里为大家提供了commons-lang3-3.1.jar

Global site tag (gtag.js) - Google Analytics