`

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

 

分享到:
评论

相关推荐

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

    标签:apache、commons、lang3、中文文档、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.12.0-API文档-中英对照版.zip

    标签:apache、lang3、commons、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.10-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代码及jar文件

    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-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.7-API文档-中英对照版.zip

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

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

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

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

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

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

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

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

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

    commons-lang3-3.1 API.chm和commons-lang3-3.1-jar

    commons-lang3-3.1-jar(包含源代码) commons-lang3-3.1 API.chm(便于查处相关函数) Commons Lang这一组API也是提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现hashCode()和equals()方法...

    apache-commons-lang.zip 源码

    JAVA commons-lang 源码

Global site tag (gtag.js) - Google Analytics