社区
Java SE
帖子详情
如何动态地给一个类加入一些方法和属性?
ccterran
2007-07-26 09:14:33
比如一个类:
class Test {
}
我想在别的类里使 Test 类具有 public int getX (), public void setX(x)方法,应该怎么做呢
...全文
425
17
打赏
收藏
如何动态地给一个类加入一些方法和属性?
比如一个类: class Test { } 我想在别的类里使 Test 类具有 public int getX (), public void setX(x)方法,应该怎么做呢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Clerk_9919
2007-07-27
打赏
举报
回复
个人认为使用ASM更加方便高效 http://asm.objectweb.org/
ccterran
2007-07-27
打赏
举报
回复
用过动态语言的,如Ruby,PHP,都知道可以通过反射机制给一个类动态添加属性和方法,这样类的内容我就可以动态生成。比如把数据库字段和POJO对象对应起来,如果可以动态添加,POJO就可以动态生成,无需再在里面写上一堆setters和getters。
我试试上面的方案。
flyforlove
2007-07-27
打赏
举报
回复
当然可以了,网上有很多这方面的应用,比如spring就是用了动态字节码生成技术。
看看这些开源工具吧
http://www.open-open.com/54.htm
把静态的java语言像动态语言一样用起来!!!!
sore520
2007-07-27
打赏
举报
回复
不知道对类进行读写 遵守一定的标准行不?
bojianyu
2007-07-27
打赏
举报
回复
妙!
dice_com
2007-07-27
打赏
举报
回复
能问一下楼主这个需求的来源是什么么?能把你遇到的情况说的更明确一些吗?
Yanbin_Q
2007-07-27
打赏
举报
回复
public aspect ExtendClassRecipe
{
private int MyClass.newvariable = 20; //给类MyClass动态增加一个属性
public int MyClass.bar(String name) //给类MyClass动态增加一个方法
{
System.out.println("In bar(String name), name:"+name);
return this.newVariable;
}
}
需要用AspectJ支持,有Eclipse的插件可下载。
zdjray
2007-07-27
打赏
举报
回复
使用继承Test的办法,在子类中扩展方法
这样既规范,又解决问题~~
yijie1206688
2007-07-26
打赏
举报
回复
不知道你是不是这个意思:
回调:
package org.battwofame.hellojava.test.test1;
class CallBack {
public void callBack() {
System.out.println("aaaaaaaaaaaaaaaaaa");
}
}
interface ICallBack {
public void callBack(CallBack cb);
}
public class TestCallBack implements ICallBack {
public void callBack(CallBack cb) {
cb.callBack();
}
public static void main(String[] args) {
TestCallBack tcb = new TestCallBack();
tcb.callBack(new CallBack());
}
}
feihua317
2007-07-26
打赏
举报
回复
当然不可以!如果可以的话,安全性就出大问题了,那个时候JAVA就要被淘汰了!!
但有例外,除非你是高手中的高手,懂得破解字节码!impossible mission...
zapdos
2007-07-26
打赏
举报
回复
你可以直接输出到.java文件里啊
zapdos
2007-07-26
打赏
举报
回复
用JAVA程序来写JAVA程序,再编译,不算动态生成么?
clevercong
2007-07-26
打赏
举报
回复
应该不可以。必须实现指定,可能N年后的人工智能能做到吧
ccterran
2007-07-26
打赏
举报
回复
应该不可以,但如果可以的话,就可以动态生成代码,不仅省去了大量人力,还可以使类结构变得相当简单。
zapdos
2007-07-26
打赏
举报
回复
我没试过,但直觉上觉得这样不可以
因为不知什么时候你给一个接口加上个方法那就麻烦了
ccterran
2007-07-26
打赏
举报
回复
谢谢回复。我的意思是说可以在其他类里面调一些方法来完成这个工作,比如:
class Test {
}
class MethodAdder {
public void addMethod () {
add(Test, "public int getX () {}");
}
}
如果这样能执行就好了。
zapdos
2007-07-26
打赏
举报
回复
修改.class文件
或者写个反编译代码出来,反编译》添加方法》编译,您看可以么?
C#笔记---
动态
类
(Dynamic)应用
动态
添加实体
属性
那么我们就会想到通过C#的dynamic
动态
类
来实现,如果大家注意的话一些ORM框架里面貌似都有用到dynamic来实现一部分功能。 一.Dynamic的基本应用 1.1 通过.PropertyName来添加
属性
,和JavaScript的对象差不多.不过...
python中定义
一个
动物
类
_Python
类
及常见的
方法
属性
定义
Python
类
及常见的
方法
属性
定义Python是一门完全面向对象(OOP)的语言,对于Python来说,一切皆对象,一切皆对象,猫,老虎,狗,狼这些都是我们认识的一种动物,在现实生活中我们把它叫做动物,而在面向对象的编程...
JavaScript 如何给js 空对象
动态
添加未知
属性
和值?
JavaScript 如何给js 空对象
动态
添加未知
属性
和值?
Python(四)之面向对象(
类
、私有
属性
、私有
方法
、静态
方法
、
类
方法
、继承、多态、鸭子
类
型)
类
必须在被定义后才能使用,定义
一个
类
也就是定义这一
类
对象的模板,定义它的
属性
和
方法
。 python中提供了class关键字来声明
一个
类
,class中有成员
属性
和成员
方法
。
类
的构造
方法
类
的
属性
与
方法
私有
属性
与私有
方法
...
js 如何给空对象
动态
添加未知
属性
和值?
我想为obj添加两个(甚至更多)
属性
或
方法
,如: 我要添加name=“super” sex=“19” work=“IT” 可以这么添加 obj.name=“super”; obj.sex=“19” 如果是
动态
类
:var obj=function(){} 我要添加name=“super” ...
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章