【前面的话】
在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货。
学习过程中的小知识点总结,基础文章,选择阅读。
【知识汇总】
一、 获取一个类中方法的详细信息
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 import java.lang.reflect.Method; 2 import java.lang.reflect.Modifier; 3 4 public class ModifiersText { 5 public static void main(String[] args) throws Exception { 6 Class c=Class.forName("Test"); 7 //-------------------获取方法的详细信息 8 //-------------------测试函数getDeclaredMethods() 9 Method m[]=c.getDeclaredMethods();10 11 for(int i=0;i
2)Test.java
1 public class Test { 2 public void test1(String[] args) throws ClassNotFoundException { 3 } 4 5 protected int test2(String[] args) throws ClassNotFoundException { 6 return 0; 7 } 8 private double test3(String[] args) throws ClassNotFoundException { 9 return 0;10 }11 }
5. 执行结果
1 getDeclaredMethods()获得的方法的名字是:test1 2 getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String; 3 getDeclaredMethods()获得的方法的返回值的类型void 4 getDeclaredMethods()获得的方法的修饰符有public 5 getDeclaredMethods()获得的方法的异常类型是:class java.lang.ClassNotFoundException 6 ------------------------------------------------------------------- 7 getDeclaredMethods()获得的方法的名字是:test2 8 getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String; 9 getDeclaredMethods()获得的方法的返回值的类型int10 getDeclaredMethods()获得的方法的修饰符有protected11 getDeclaredMethods()获得的方法的异常类型是:class java.lang.ClassNotFoundException12 -------------------------------------------------------------------13 getDeclaredMethods()获得的方法的名字是:test314 getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String;15 getDeclaredMethods()获得的方法的返回值的类型double16 getDeclaredMethods()获得的方法的修饰符有private17 getDeclaredMethods()获得的方法的异常类型是:class java.lang.ClassNotFoundException18 -------------------------------------------------------------------19 getMethods()获得的方法的名字是:test120 getMethods()获得的参数的类型是class [Ljava.lang.String;21 getMethods()获得的方法的返回值的类型void22 getMethods()获得的方法的修饰符有public23 getMethods()获得的方法的异常类型是:class java.lang.ClassNotFoundException24 -------------------------------------------------------------------25 getMethods()获得的方法的名字是:wait26 getMethods()获得的方法的返回值的类型void27 getMethods()获得的方法的修饰符有public final28 getMethods()获得的方法的异常类型是:class java.lang.InterruptedException29 -------------------------------------------------------------------30 getMethods()获得的方法的名字是:wait31 getMethods()获得的参数的类型是long32 getMethods()获得的参数的类型是int33 getMethods()获得的方法的返回值的类型void34 getMethods()获得的方法的修饰符有public final35 getMethods()获得的方法的异常类型是:class java.lang.InterruptedException36 -------------------------------------------------------------------37 getMethods()获得的方法的名字是:wait38 getMethods()获得的参数的类型是long39 getMethods()获得的方法的返回值的类型void40 getMethods()获得的方法的修饰符有public final native41 getMethods()获得的方法的异常类型是:class java.lang.InterruptedException42 -------------------------------------------------------------------43 getMethods()获得的方法的名字是:hashCode44 getMethods()获得的方法的返回值的类型int45 getMethods()获得的方法的修饰符有public native46 -------------------------------------------------------------------47 getMethods()获得的方法的名字是:getClass48 getMethods()获得的方法的返回值的类型class java.lang.Class49 getMethods()获得的方法的修饰符有public final native50 -------------------------------------------------------------------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 native63 -------------------------------------------------------------------64 getMethods()获得的方法的名字是:notifyAll65 getMethods()获得的方法的返回值的类型void66 getMethods()获得的方法的修饰符有public final native67 -------------------------------------------------------------------
========================我是2014年2月11日的分割线========================
二、java的LinkedList
项目中要使用到LinkedList,其实对于java来说这些结构都已经是写好了的,只需要去调用就可以了,开发就简单了好多。
1.代码结构:主要写了下面几个java文件,将对LinkedList的操作分开。
- LinkList.java实现对LinkedList类中方法的重写定义,这样就可以方便的使用自己定义的方法名对LinkedList进行操作,逻辑结构也就更加清晰一些了。
- LinkListInfo.java数据封转
- StorageTest,.java实现存储数据
- MainTest.java测试代码,取数
2.代码
- LinkList.java
1 package linkedlisttest; 2 3 import java.util.LinkedList; 4 import java.util.List; 5 6 /** 7 * @author XT 8 * 定义List 9 *10 */11 12 public class LinkList 13 { 14 private static LinkedListlinklist = new LinkedList ();15 16 public static void addToList(LinkListInfo displayinfo){17 linklist.add(displayinfo);18 }19 20 public static void addFistToList(LinkListInfo displayinfo){21 linklist.addFirst(displayinfo);22 }23 24 public static void addLastToList(LinkListInfo displayinfo){25 linklist.addLast(displayinfo);26 }27 28 public static void removeFistToList(){29 linklist.removeFirst();30 }31 32 public static void removeLastToList(){33 linklist.removeLast();34 }35 36 public static List getList(){37 return linklist;38 }39 }
- LinkListInfo.java
1 package linkedlisttest; 2 3 public class LinkListInfo { 4 5 private String IdName; 6 private int IdNum; 7 8 public String getIdName() { 9 return IdName;10 }11 12 public void setIdName(String idName) {13 IdName = idName;14 }15 16 public int getIdNum() {17 return IdNum;18 }19 20 public void setIdNum(int idNum) {21 IdNum = idNum;22 }23 }
- StorageTest,.java
1 package linkedlisttest; 2 3 public class StorageTest 4 { 5 public void storageTest (){ 6 for(int i=0;i<10;i++){ 7 LinkListInfo linklistinfo = new LinkListInfo(); 8 linklistinfo.setIdName("帅哥"+i); 9 linklistinfo.setIdNum(i);10 LinkList.addToList(linklistinfo);//静态方法类可以直接使用11 }12 }13 14 }
- MainTest.java
1 package linkedlisttest; 2 3 import java.util.List; 4 5 public class MainTest { 6 public static void main(String[] args){ 7 StorageTest storagetest = new StorageTest(); 8 storagetest.storageTest(); 9 Listlinklistinfo = LinkList.getList();10 for(int i=0;i
3.结果
1 帅哥0 2 0 3 .......... 4 帅哥1 5 1 6 .......... 7 帅哥2 8 2 9 ..........10 帅哥311 312 ..........13 帅哥414 415 ..........16 帅哥517 518 ..........19 帅哥620 621 ..........22 帅哥723 724 ..........25 帅哥826 827 ..........28 帅哥929 930 ..........
========================我是2014年2月12日的分割线========================
【后面的话】
节后的生活有归于平静了,必须在接下来的日子学习到更多,不要着急,一点一点来。
分享:
社交网络≠阅读
阅读≠学习
学习≠生产
生产≠影响力
——TT