社区
Java SE
帖子详情
我如何知道一个类中有哪些属性和方法,又怎样在不知道的情况下调用呢?
smilelhh
2005-01-14 10:07:08
不知道有没有高手会?
...全文
366
28
打赏
收藏
我如何知道一个类中有哪些属性和方法,又怎样在不知道的情况下调用呢?
不知道有没有高手会?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
treeroot
2005-01-14
打赏
举报
回复
http://blog.csdn.net/treeroot/archive/2004/12/29/232786.aspx
上面两个例子较多的利用了反射
treeroot
2005-01-14
打赏
举报
回复
http://blog.csdn.net/treeroot/archive/2004/12/29/232826.aspx
fog628
2005-01-14
打赏
举报
回复
pri
pro
pub
10
pri_print
pro_print
pub_print
Test
private
Press any key to continue...
我机上没有报错啊
iforem
2005-01-14
打赏
举报
回复
我帮你丁页一下
50分给我吧
呵呵
smilelhh
2005-01-14
打赏
举报
回复
to fog628(发粪涂墙)
很好。可以得到属性、方法名。
但是ms[0].invoke(new Test(), null);调用时报错:java.lang.reflect.InvocationTargetException
fog628
2005-01-14
打赏
举报
回复
import java.lang.reflect.*;
class Test{
private int pri = 10;
protected int pro = 20;
public int pub = 30;
private void pri_print(){
System.out.println("private");
}
protected void pro_print(){
System.out.println("protected");
}
public void pub_print(){
System.out.println("public");
}
}
public class Demo{
public static void main(String[] args)
throws IllegalAccessException,
IllegalArgumentException, InvocationTargetException{
Class c = Test.class;
Field[] fs = c.getDeclaredFields();
//设为可访问的
Field.setAccessible(fs, true);
for(int i = 0; i < fs.length; i++){
System.out.println(fs[i].getName());
}
//得到private int pri的值
System.out.println(fs[0].getInt(new Test()));
Method[] ms = c.getDeclaredMethods();
Method.setAccessible(ms, true);
for(int i = 0; i < ms.length; i++){
System.out.println(ms[i].getName());
}
//得到定义这个方法的类名
System.out.println(ms[0].getDeclaringClass().getName());
//调用private方法
ms[0].invoke(new Test(), null);
}
}
smilelhh
2005-01-14
打赏
举报
回复
我查了一下,在struts中有个commons-beanutils.jar包,好象可以解决这个问题。
不知道有哪个高手可以讲一下怎么用?
aiyy
2005-01-14
打赏
举报
回复
偶是菜鸟,偶来学习的。
treeroot
2005-01-14
打赏
举报
回复
反射很容易实现,现在好忙
smilelhh
2005-01-14
打赏
举报
回复
得到属性也行呀。
smilelhh
2005-01-14
打赏
举报
回复
比如我想从数据库中select一行数据时,
通过自动获得类属性和方法来设置valueobject呀。
classjava
2005-01-14
打赏
举报
回复
面向的3个特色里面就有封装这个概念,呵呵,在你不知道的类中想得到他的属性,和method恐怕不太easy
好像记得可以有个method是得到属性的,方法那个就没有
(希望没误导)
smilelhh
2005-01-14
打赏
举报
回复
只要能得到本身类里有哪些方法和哪些属性(包含private)
当然是通过代码自动实现
不徻写代码
2005-01-14
打赏
举报
回复
想通过这种方法来实现一些意想不到的功能。
---------------------------------------
啥功能?????
fog628
2005-01-14
打赏
举报
回复
呵呵,我觉得应该用反射来实现
不徻写代码
2005-01-14
打赏
举报
回复
????偶看jdk源码,或JB的源码支持
-----------------------------------
又怎样在不知道的情况下调用呢?
------------------------------------
???????????
smilelhh
2005-01-14
打赏
举报
回复
我的意思是在我的类里,想通过这种方法来实现一些意想不到的功能。呵呵
thomas_20
2005-01-14
打赏
举报
回复
装个jbuilder吧,你想知道哪个类里有那些方法和属性只要类名.就会弹出方法和属性了。如一个String对象s,你只要输入s.就ok了
还有就是看API文档了
fog628
2005-01-14
打赏
举报
回复
up一下,等根兄来
smilelhh
2005-01-14
打赏
举报
回复
呵呵,好了。
谢谢天才!!
加载更多回复(8)
Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好
种
方法
实现了信号和槽函数的关联,第
一个
按钮我们直接在设计器中实现其关 联;第二个按钮我们自己写了槽函数语句,其实图形的设计与直接写代码效果是 一样的。 这个程序里我们实现了两类窗口打开的方式,
一个
是自身...
Python接口自动化测试框架(进阶篇)-- 类有三大
方法
从上篇《类和对象》学习了如何定义类、使用类,还有关于
属性
和
方法
的定义和使用,更有
方法
重写和继承比较重要的知识点进行讲解,而本篇呢,从中抽取部分内容,单独进行精讲和演示。分别用了四个成语来介绍python动态...
linux下c++调试及问题解决
包括: 1、如何在linux下调试c++程序,讲解了命令行下如何调试。着重讲解更高效的方式,如何在linux的图形界面下如何更方便的开发和调试程序。 2、程序正式上线后,如何利用日志快速定位问题。 3、程序上线后,利用...
C#和ASP.Net面试题目集锦
1.有哪几种
方法
可以实现
一个
类存取另外
一个
类的成员函数及
属性
,并请举列来加以说明和分析. 2.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.请附code 3....
头歌实践教学平台:Java面向对象 - 封装、继承和多态
第1关:什么是封装,如何使用封装 任务描述 ...对于封装而言,
一个
对象它所封装的是自己的
属性
和
方法
,所以它是不需要依赖其他对象就可以完成自己的操作。使用封装有四大好处: 良好的封装能够减...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章