81 Javaassist - 操作するクラスファイル

javaassistキット、公式サイトのオープンをダウンロードするにはお金がないので。だから、動作しません。

悪CSDN、CSDNは、ネットワーク全体の袋を持っています。

やって先生を見てみましょう:

com.bjsxt.testをパッケージ化。

輸入javassist.CannotCompileException。
輸入javassist.ClassPool; 
輸入javassist.CtClass; 
輸入javassist.CtConstructor; 
輸入javassist.CtField; 
輸入javassist.CtMethod; 

/ ** 
 *测试使用Javassistの生成一个新的类
 * @author尚学堂高淇www.sxt.cn 
 * 
 * / 
publicクラスDemo01 { 
	公共の静的な無効メイン(文字列[] argsが){例外をスロー
		ClassPoolプール= ClassPool.getDefault (); 
		CtClass CC = pool.makeClass( "com.bjsxt.bean.Emp")。
		
		//创建属性
		CtField F1 = CtField.make( "プライベートint型のEMPNO;"、CC); 
		CtField F2 = CtField.make( "プライベート文字列ENAME;"、CC); 
		cc.addField(F1)。
		cc.addField(F2)。
		 
		//メソッドを作成
		CtMethod CtMethod.make = M1( "getEmpnoパブリックINT(){戻りEMPNO;}"、CC); 
		CtMethod CtMethod.make = M2(「パブリックボイドsetEmpno(INT EMPNO){ EMPNO = this.empno;}」、CC); 
		cc.addMethod(M1); 
		cc.addMethod(M2); 
		
		//追加コンストラクタ
		CtConstructorコンストラクタ=新しいCtConstructor(新しいCtClass [] {CtClass.intType、pool.get( "java.lang.Stringで")}、CC); 
		constructor.setBody( "= {this.empno EMPNO、ENAME this.ename =;}"); 
		cc.addConstructor(コンストラクタ); 
		
		cc.writeFile(「C:/ myjava "); //構築クラスcへの書き込み以上:/ myjavaをに
		するSystem.out.println("!成功したクラスを生成「); 
	} 
}

  

おすすめ

転載: www.cnblogs.com/Scorpicat/p/12153838.html