【前面的话】
在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货。
学习过程中的小知识点总结,基础文章,选择阅读。
【知识汇总】
一、获取一个类中方法的详细信息
1. getDeclaredMethods()方法和getMethods()的区别
1)getDeclaredMethod*()获取的是类自身声明的所有方法,包含public、protected和private方法。
2)getMethod*()获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。
2. 如何得到一个类的方法的详细信息,下面的代码就是获得一个类的:
1)方法的名字
2)参数的类型
3)方法的返回值的类型
4)方法的修饰符有
5)方法的异常类型
3. 代码介绍:
1)ModifiersText.java实现获取Text类方法的信息
2)Test.java测试类
4. 代码:
1)ModifiersText.java


1 importjava.lang.reflect.Method;2 importjava.lang.reflect.Modifier;3
4 public classModifiersText {5 public static void main(String[] args) throwsException {6 Class c=Class.forName("Test");7 //-------------------获取方法的详细信息8 //-------------------测试函数getDeclaredMethods()
9 Method m[]=c.getDeclaredMethods();10
11 for(int i=0;i
14 System.out.println("getDeclaredMethods()获得的方法的名字是:"+m[i].getName());15
16 //--------------------获得方法参数的类型和有几个参数
17 Class b[]=m[i].getParameterTypes();//获得所有的参数并且存放到数组B中
18 for(int j=0;j
22 //--------------------获得方法返回值的类型
23 System.out.println("getDeclaredMethods()获得的方法的返回值的类型"+m[i].getReturnType());//获得方法的返回值类型24
25 //--------------------获得方法的修饰符
26 int mod=m[i].getModifiers();27 System.out.println("getDeclaredMethods()获得的方法的修饰符有"+Modifier.toString(mod));28
29 //--------------------获得方法的异常类型
30 Class e[]=m[i].getExceptionTypes();//获得所有的异常类型存放到数组e中
31 for(int k=0;k
35 System.out.println("-------------------------------------------------------------------");36 }37
38 //-------------------获取方法的详细信息39 //-------------------测试函数getMethods()
40 Method n[]=c.getMethods();41
42 for(int i=0;i
45 System.out.println("getMethods()获得的方法的名字是:"+n[i].getName());46
47 //--------------------获得方法参数的类型和有几个参数
48 Class b1[]=n[i].getParameterTypes();//获得所有的参数并且存放到数组B中
49 for(int j=0;j
53 //--------------------获得方法返回值的类型
54 System.out.println("getMethods()获得的方法的返回值的类型"+n[i].getReturnType());//获得方法的返回值类型55
56 //--------------------获得方法的修饰符
57 int mod1=n[i].getModifiers();58 System.out.println("getMethods()获得的方法的修饰符有"+Modifier.toString(mod1));59
60 //--------------------获得方法的异常类型
61 Class e1[]=n[i].getExceptionTypes();//获得所有的异常类型存放到数组e中
62 for(int k=0;k
66 System.out.println("-------------------------------------------------------------------");67 }68 }69 }
View Code
2)Test.java


1 public classTest {2 public void test1(String[] args) throwsClassNotFoundException {3 }4
5 protected int test2(String[] args) throwsClassNotFoundException {6 return 0;7 }8 private double test3(String[] args) throwsClassNotFoundException {9 return 0;10 }11 }
View Code
5. 执行结果


1 getDeclaredMethods()获得的方法的名字是:test12 getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String;3 getDeclaredMethods()获得的方法的返回值的类型void4 getDeclaredMethods()获得的方法的修饰符有public5 getDeclaredMethods()获得的方法的异常类型是:classjava.lang.ClassNotFoundException6 -------------------------------------------------------------------
7 getDeclaredMethods()获得的方法的名字是:test28 getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String;9 getDeclaredMethods()获得的方法的返回值的类型int10 getDeclaredMethods()获得的方法的修饰符有protected11 getDeclaredMethods()获得的方法的异常类型是:classjava.lang.ClassNotFoundException12 -------------------------------------------------------------------
13 getDeclaredMethods()获得的方法的名字是:test314 getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String;15 getDeclaredMethods()获得的方法的返回值的类型double16 getDeclaredMethods()获得的方法的修饰符有private17 getDeclaredMethods()获得的方法的异常类型是:classjava.lang.ClassNotFoundException18 -------------------------------------------------------------------
19 getMethods()获得的方法的名字是:test120 getMethods()获得的参数的类型是class [Ljava.lang.String;21 getMethods()获得的方法的返回值的类型void22 getMethods()获得的方法的修饰符有public23 getMethods()获得的方法的异常类型是:classjava.lang.ClassNotFoundException24 -------------------------------------------------------------------
25 getMethods()获得的方法的名字是:wait26 getMethods()获得的方法的返回值的类型void27 getMethods()获得的方法的修饰符有public final
28 getMethods()获得的方法的异常类型是:classjava.lang.InterruptedException29 -------------------------------------------------------------------
30 getMethods()获得的方法的名字是:wait31 getMethods()获得的参数的类型是long32 getMethods()获得的参数的类型是int33 getMethods()获得的方法的返回值的类型void34 getMethods()获得的方法的修饰符有public final
35 getMethods()获得的方法的异常类型是:classjava.lang.InterruptedException36 -------------------------------------------------------------------
37 getMethods()获得的方法的名字是:wait38 getMethods()获得的参数的类型是long39 getMethods()获得的方法的返回值的类型void40 getMethods()获得的方法的修饰符有public final native
41 getMethods()获得的方法的异常类型是:classjava.lang.InterruptedException42 -------------------------------------------------------------------
43 getMethods()获得的方法的名字是:hashCode44 getMethods()获得的方法的返回值的类型int45 getMethods()获得的方法的修饰符有public native
46 -------------------------------------------------------------------
47 getMethods()获得的方法的名字是:getClass48 getMethods()获得的方法的返回值的类型class java.lang.Class49 getMethods()获得的方法的修饰符有public final native
50 -------------------------------------------------------------------
51 getMethods()获得的方法的名字是:equals52 getMethods()获得的参数的类型是class java.lang.Object53 getMethods()获得的方法的返回值的类型boolean54 getMethods()获得的方法的修饰符有public55 -------------------------------------------------------------------
56 getMethods()获得的方法的名字是:toString57 getMethods()获得的方法的返回值的类型class java.lang.String58 getMethods()获得的方法的修饰符有public59 -------------------------------------------------------------------
60 getMethods()获得的方法的名字是:notify61 getMethods()获得的方法的返回值的类型void62 getMethods()获得的方法的修饰符有public final native
63 -------------------------------------------------------------------
64 getMethods()获得的方法的名字是:notifyAll65 getMethods()获得的方法的返回值的类型void66 getMethods()获得的方法的修饰符有public final native
67 -------------------------------------------------------------------
View Code
========================我是2014年2月11日的分割线========================
二、java的LinkedList
项目中要使用到LinkedList,其实对于java来说这些结构都已经是写好了的,只需要去调用就可以了,开发就简单了好多。
1.代码结构:主要写了下面几个java文件,将对LinkedList的操作分开。
LinkList.java实现对LinkedList类中方法的重写定义,这样就可以方便的使用自己定义的方法名对LinkedList进行操作,逻辑结构也就更加清晰一些了。
LinkListInfo.java数据封转
StorageTest,.java实现存储数据
MainTest.java测试代码,取数
2.代码
LinkList.java


1 packagelinkedlisttest;2
3 importjava.util.LinkedList;4 importjava.util.List;5
6 /**
7 *@authorXT8 * 定义List9 *10 */
11
12 public classLinkList13 {14 private static LinkedList linklist = new LinkedList();15
16 public static voidaddToList(LinkListInfo displayinfo){17 linklist.add(displayinfo);18 }19
20 public static voidaddFistToList(LinkListInfo displayinfo){21 linklist.addFirst(displayinfo);22 }23
24 public static voidaddLastToList(LinkListInfo displayinfo){25 linklist.addLast(displayinfo);26 }27
28 public static voidremoveFistToList(){29 linklist.removeFirst();30 }31
32 public static voidremoveLastToList(){33 linklist.removeLast();34 }35
36 public staticList getList(){37 returnlinklist;38 }39 }
View Code
LinkListInfo.java


1 packagelinkedlisttest;2
3 public classLinkListInfo {4
5 privateString IdName;6 private intIdNum;7
8 publicString getIdName() {9 returnIdName;10 }11
12 public voidsetIdName(String idName) {13 IdName =idName;14 }15
16 public intgetIdNum() {17 returnIdNum;18 }19
20 public void setIdNum(intidNum) {21 IdNum =idNum;22 }23 }
View Code
StorageTest,.java


1 packagelinkedlisttest;2
3 public classStorageTest4 {5 public voidstorageTest (){6 for(int i=0;i<10;i++){7 LinkListInfo linklistinfo = newLinkListInfo();8 linklistinfo.setIdName("帅哥"+i);9 linklistinfo.setIdNum(i);10 LinkList.addToList(linklistinfo);//静态方法类可以直接使用
11 }12 }13
14 }
View Code
MainTest.java


1 packagelinkedlisttest;2
3 importjava.util.List;4
5 public classMainTest {6 public static voidmain(String[] args){7 StorageTest storagetest = newStorageTest();8 storagetest.storageTest();9 List linklistinfo =LinkList.getList();10 for(int i=0;i
View Code
3.结果


1 帅哥02 0
3 ..........4 帅哥15 1
6 ..........7 帅哥28 2
9 ..........10 帅哥311 3
12 ..........13 帅哥414 4
15 ..........16 帅哥517 5
18 ..........19 帅哥620 6
21 ..........22 帅哥723 7
24 ..........25 帅哥826 8
27 ..........28 帅哥929 9
30 ..........
View Code
========================我是2014年2月12日的分割线========================
【后面的话】
节后的生活有归于平静了,必须在接下来的日子学习到更多,不要着急,一点一点来。
分享:
社交网络≠阅读
阅读≠学习
学习≠生产
生产≠影响力
——TT
本文介绍了如何在Java中获取类中方法的详细信息,包括`getDeclaredMethods()`与`getMethods()`的区别,并提供了示例代码展示获取方法名称、参数类型、返回值类型和修饰符等信息。此外,还讲解了Java的LinkedList使用,通过创建`LinkList`类封装LinkedList操作,如添加、删除元素,以及展示存储和遍历数据的示例。
2万+

被折叠的 条评论
为什么被折叠?



