欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java commons-lang 博客分类: java java 

程序员文章站 2024-03-14 08:35:04
...
 

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类
java commons-lang
            
    
    博客分类: java java package sample;
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java 
import java.math.*;
java commons-lang
            
    
    博客分类: java java 
import java.util.*;
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java 
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java 
public class PoliticalCandidate {
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
private String lastName;
java commons-lang
            
    
    博客分类: java java     
private String firstName;
java commons-lang
            
    
    博客分类: java java     
private Date dateOfBirth;
java commons-lang
            
    
    博客分类: java java     
private BigDecimal moneyRaised;
java commons-lang
            
    
    博客分类: java java     
private State homeState;
java commons-lang
            
    
    博客分类: java java     
java commons-lang
            
    
    博客分类: java java     
public String toString() {
java commons-lang
            
    
    博客分类: java java         
return ReflectionToStringBuilder.toString(this);
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java     
java commons-lang
            
    
    博客分类: java java     
public PoliticalCandidate(String lastName, String firstName,
java commons-lang
            
    
    博客分类: java java             Date dob, BigDecimal money, State s) 
{
java commons-lang
            
    
    博客分类: java java         
this.lastName = lastName;
java commons-lang
            
    
    博客分类: java java         
this.firstName = firstName;
java commons-lang
            
    
    博客分类: java java         
this.dateOfBirth = dob;
java commons-lang
            
    
    博客分类: java java         
this.moneyRaised = money;
java commons-lang
            
    
    博客分类: java java         
this.homeState = s;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@param lastName the lastName to set
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public void setLastName(String lastName) {
java commons-lang
            
    
    博客分类: java java         
this.lastName = lastName;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@return the lastName
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public String getLastName() {
java commons-lang
            
    
    博客分类: java java         
return lastName;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@param firstName the firstName to set
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public void setFirstName(String firstName) {
java commons-lang
            
    
    博客分类: java java         
this.firstName = firstName;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@return the firstName
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public String getFirstName() {
java commons-lang
            
    
    博客分类: java java         
return firstName;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@param dateOfBirth the dateOfBirth to set
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public void setDateOfBirth(Date dateOfBirth) {
java commons-lang
            
    
    博客分类: java java         
this.dateOfBirth = dateOfBirth;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@return the dateOfBirth
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public Date getDateOfBirth() {
java commons-lang
            
    
    博客分类: java java         
return dateOfBirth;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@param moneyRaised the moneyRaised to set
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public void setMoneyRaised(BigDecimal moneyRaised) {
java commons-lang
            
    
    博客分类: java java         
this.moneyRaised = moneyRaised;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@return the moneyRaised
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public BigDecimal getMoneyRaised() {
java commons-lang
            
    
    博客分类: java java         
return moneyRaised;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@param homeState the homeState to set
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public void setHomeState(State homeState) {
java commons-lang
            
    
    博客分类: java java         
this.homeState = homeState;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@return the homeState
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public State getHomeState() {
java commons-lang
            
    
    博客分类: java java         
return homeState;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java }

java commons-lang
            
    
    博客分类: java java 
State类
java commons-lang
            
    
    博客分类: java java package sample;
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java 
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java 
public class State {
java commons-lang
            
    
    博客分类: java java     
java commons-lang
            
    
    博客分类: java java     
private String shortName;
java commons-lang
            
    
    博客分类: java java     
private String name;
java commons-lang
            
    
    博客分类: java java     
java commons-lang
            
    
    博客分类: java java     
public State(String shortName, String name) {
java commons-lang
            
    
    博客分类: java java         
this.shortName = shortName;
java commons-lang
            
    
    博客分类: java java         
this.name = name;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java     
java commons-lang
            
    
    博客分类: java java     
public String toString() {
java commons-lang
            
    
    博客分类: java java         
return ReflectionToStringBuilder.toString(this);
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@param shortName the shortName to set
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public void setShortName(String shortName) {
java commons-lang
            
    
    博客分类: java java         
this.shortName = shortName;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@return the shortName
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public String getShortName() {
java commons-lang
            
    
    博客分类: java java         
return shortName;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@param name the name to set
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public void setName(String name) {
java commons-lang
            
    
    博客分类: java java         
this.name = name;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * 
@return the name
java commons-lang
            
    
    博客分类: java java      
*/

java commons-lang
            
    
    博客分类: java java     
public String getName() {
java commons-lang
            
    
    博客分类: java java         
return name;
java commons-lang
            
    
    博客分类: java java     }

java commons-lang
            
    
    博客分类: java java }

java commons-lang
            
    
    博客分类: java java 
测试采用的是JUnit3.81
java commons-lang
            
    
    博客分类: java java /**
java commons-lang
            
    
    博客分类: java java  * 
java commons-lang
            
    
    博客分类: java java  
*/

java commons-lang
            
    
    博客分类: java java 
package sample;
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java 
import java.math.*;
java commons-lang
            
    
    博客分类: java java 
import java.util.*;
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java 
import junit.framework.TestCase;
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java 
/**
java commons-lang
            
    
    博客分类: java java  * 
@author gnehzuil
java commons-lang
            
    
    博客分类: java java  *
java commons-lang
            
    
    博客分类: java java  
*/

java commons-lang
            
    
    博客分类: java java 
public class TestToStirng extends TestCase {
java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java     
/**
java commons-lang
            
    
    博客分类: java java      * Test method for {
@link sample.PoliticalCandidate#toString()}.
java commons-lang
            
    
    博客分类: java java      
*/

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

java commons-lang
            
    
    博客分类: java java 
java commons-lang
            
    
    博客分类: java java }
输出:
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