社区
Java SE
帖子详情
如何动态地给一个类加入一些方法和属性?
ccterran
2007-07-26 09:14:33
比如一个类:
class Test {
}
我想在别的类里使 Test 类具有 public int getX (), public void setX(x)方法,应该怎么做呢
...全文
479
17
打赏
收藏
如何动态地给一个类加入一些方法和属性?
比如一个类: class Test { } 我想在别的类里使 Test 类具有 public int getX (), public void setX(x)方法,应该怎么做呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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文件
或者写个反编译代码出来,反编译》添加方法》编译,您看可以么?
给Python的
类
和对象
动态
增加
属性
和
方法
本文介绍了Python中
动态
添加
属性
和
方法
的概念,包括如何
动态
地为对象和
类
添加
属性
和
方法
,并展示了不同
类
型的
属性
和
方法
的效果。同时,讨论了如何利用`__slots__`来限制
类
的
属性
,确保
类
的行为可控。
类
的
属性
和
方法
(内置
方法
)
本文详细介绍了Python中
类
的
属性
和
方法
,包括公有与私有
属性
、对象
属性
的修改、
类
的
方法
及其分
类
(如静态
方法
、
类
方法
),并探讨了Python内部
类
的概念及用法。
python
类
的实例化与使用,静态
方法
、
类
方法
和实例
方法
,
动态
添加
类
的
属性
和
方法
,
类
的property
属性
本文详细介绍了Python中
类
的实例化、静态
方法
、
类
方法
和实例
方法
的使用,以及@property装饰器在
属性
封装中的应用。通过示例展示了如何
动态
添加
类
的
属性
和
方法
,并探讨了经典
类
与新式
类
在property
属性
上的差异。内容涵盖了面向对象的核心概念,有助于理解Python的OOP特性。
如何
动态
调用DLL中
类
的
方法
以及
属性
本文介绍了如何在C#中使用Assembly
动态
加载DLL,并通过InvokeMember
方法
调用
类
的
方法
和
属性
。示例代码展示了加载DLL、创建
类
型、调用静态与非静态
方法
以及设置和获取
属性
值的过程。
java 利用反射
动态
获取
一个
类
的
方法
和
属性
,并执行所需
方法
本文介绍如何利用Java反射机制
动态
地操作
类
中的
方法
和
属性
,通过示例代码展示如何获取
类
的所有
属性
和
方法
,并
动态
调用set和get
方法
,实现
属性
值的
动态
设置和获取。
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章