【前面的话】

在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货。

学习过程中的小知识点总结,基础文章,选择阅读

【知识汇总】

一、 获取一个类中方法的详细信息

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

 import java.lang.reflect.Method;
import java.lang.reflect.Modifier; public class ModifiersText {
public static void main(String[] args) throws Exception {
Class c=Class.forName("Test");
//-------------------获取方法的详细信息
//-------------------测试函数getDeclaredMethods()
Method m[]=c.getDeclaredMethods(); for(int i=0;i<m.length;i++)
{
//--------------------获得方法的名字
System.out.println("getDeclaredMethods()获得的方法的名字是:"+m[i].getName()); //--------------------获得方法参数的类型和有几个参数
Class b[]=m[i].getParameterTypes();//获得所有的参数并且存放到数组B中
for(int j=0;j<b.length;j++){
System.out.println("getDeclaredMethods()获得的参数的类型是"+b[j]);
} //--------------------获得方法返回值的类型
System.out.println("getDeclaredMethods()获得的方法的返回值的类型"+m[i].getReturnType());//获得方法的返回值类型 //--------------------获得方法的修饰符
int mod=m[i].getModifiers();
System.out.println("getDeclaredMethods()获得的方法的修饰符有"+Modifier.toString(mod)); //--------------------获得方法的异常类型
Class e[]=m[i].getExceptionTypes();//获得所有的异常类型存放到数组e中
for(int k=0;k<e.length;k++){
System.out.println("getDeclaredMethods()获得的方法的异常类型是:"+e[k]);
} System.out.println("-------------------------------------------------------------------");
} //-------------------获取方法的详细信息
//-------------------测试函数getMethods()
Method n[]=c.getMethods(); for(int i=0;i<n.length;i++)
{
//--------------------获得方法的名字
System.out.println("getMethods()获得的方法的名字是:"+n[i].getName()); //--------------------获得方法参数的类型和有几个参数
Class b1[]=n[i].getParameterTypes();//获得所有的参数并且存放到数组B中
for(int j=0;j<b1.length;j++){
System.out.println("getMethods()获得的参数的类型是"+b1[j]);
} //--------------------获得方法返回值的类型
System.out.println("getMethods()获得的方法的返回值的类型"+n[i].getReturnType());//获得方法的返回值类型 //--------------------获得方法的修饰符
int mod1=n[i].getModifiers();
System.out.println("getMethods()获得的方法的修饰符有"+Modifier.toString(mod1)); //--------------------获得方法的异常类型
Class e1[]=n[i].getExceptionTypes();//获得所有的异常类型存放到数组e中
for(int k=0;k<e1.length;k++){
System.out.println("getMethods()获得的方法的异常类型是:"+e1[k]);
} System.out.println("-------------------------------------------------------------------");
}
}
}

2)Test.java

 public class Test {
public void test1(String[] args) throws ClassNotFoundException {
} protected int test2(String[] args) throws ClassNotFoundException {
return 0;
}
private double test3(String[] args) throws ClassNotFoundException {
return 0;
}
}

5. 执行结果

 getDeclaredMethods()获得的方法的名字是:test1
getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String;
getDeclaredMethods()获得的方法的返回值的类型void
getDeclaredMethods()获得的方法的修饰符有public
getDeclaredMethods()获得的方法的异常类型是:class java.lang.ClassNotFoundException
-------------------------------------------------------------------
getDeclaredMethods()获得的方法的名字是:test2
getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String;
getDeclaredMethods()获得的方法的返回值的类型int
getDeclaredMethods()获得的方法的修饰符有protected
getDeclaredMethods()获得的方法的异常类型是:class java.lang.ClassNotFoundException
-------------------------------------------------------------------
getDeclaredMethods()获得的方法的名字是:test3
getDeclaredMethods()获得的参数的类型是class [Ljava.lang.String;
getDeclaredMethods()获得的方法的返回值的类型double
getDeclaredMethods()获得的方法的修饰符有private
getDeclaredMethods()获得的方法的异常类型是:class java.lang.ClassNotFoundException
-------------------------------------------------------------------
getMethods()获得的方法的名字是:test1
getMethods()获得的参数的类型是class [Ljava.lang.String;
getMethods()获得的方法的返回值的类型void
getMethods()获得的方法的修饰符有public
getMethods()获得的方法的异常类型是:class java.lang.ClassNotFoundException
-------------------------------------------------------------------
getMethods()获得的方法的名字是:wait
getMethods()获得的方法的返回值的类型void
getMethods()获得的方法的修饰符有public final
getMethods()获得的方法的异常类型是:class java.lang.InterruptedException
-------------------------------------------------------------------
getMethods()获得的方法的名字是:wait
getMethods()获得的参数的类型是long
getMethods()获得的参数的类型是int
getMethods()获得的方法的返回值的类型void
getMethods()获得的方法的修饰符有public final
getMethods()获得的方法的异常类型是:class java.lang.InterruptedException
-------------------------------------------------------------------
getMethods()获得的方法的名字是:wait
getMethods()获得的参数的类型是long
getMethods()获得的方法的返回值的类型void
getMethods()获得的方法的修饰符有public final native
getMethods()获得的方法的异常类型是:class java.lang.InterruptedException
-------------------------------------------------------------------
getMethods()获得的方法的名字是:hashCode
getMethods()获得的方法的返回值的类型int
getMethods()获得的方法的修饰符有public native
-------------------------------------------------------------------
getMethods()获得的方法的名字是:getClass
getMethods()获得的方法的返回值的类型class java.lang.Class
getMethods()获得的方法的修饰符有public final native
-------------------------------------------------------------------
getMethods()获得的方法的名字是:equals
getMethods()获得的参数的类型是class java.lang.Object
getMethods()获得的方法的返回值的类型boolean
getMethods()获得的方法的修饰符有public
-------------------------------------------------------------------
getMethods()获得的方法的名字是:toString
getMethods()获得的方法的返回值的类型class java.lang.String
getMethods()获得的方法的修饰符有public
-------------------------------------------------------------------
getMethods()获得的方法的名字是:notify
getMethods()获得的方法的返回值的类型void
getMethods()获得的方法的修饰符有public final native
-------------------------------------------------------------------
getMethods()获得的方法的名字是:notifyAll
getMethods()获得的方法的返回值的类型void
getMethods()获得的方法的修饰符有public final native
-------------------------------------------------------------------

========================我是2014年2月11日的分割线========================

二、javaLinkedList

项目中要使用到LinkedList,其实对于java来说这些结构都已经是写好了的,只需要去调用就可以了,开发就简单了好多。

1.代码结构:主要写了下面几个java文件,将对LinkedList的操作分开。

  • LinkList.java实现对LinkedList类中方法的重写定义,这样就可以方便的使用自己定义的方法名对LinkedList进行操作,逻辑结构也就更加清晰一些了。
  • LinkListInfo.java数据封转
  • StorageTest,.java实现存储数据
  • MainTest.java测试代码,取数

2.代码

  • LinkList.java
 package linkedlisttest;

 import java.util.LinkedList;
import java.util.List; /**
* @author XT
* 定义List
*
*/ public class LinkList
{
private static LinkedList <LinkListInfo> linklist = new LinkedList<LinkListInfo>(); public static void addToList(LinkListInfo displayinfo){
linklist.add(displayinfo);
} public static void addFistToList(LinkListInfo displayinfo){
linklist.addFirst(displayinfo);
} public static void addLastToList(LinkListInfo displayinfo){
linklist.addLast(displayinfo);
} public static void removeFistToList(){
linklist.removeFirst();
} public static void removeLastToList(){
linklist.removeLast();
} public static List getList(){
return linklist;
}
}
  • LinkListInfo.java
 package linkedlisttest;

 public class LinkListInfo {

     private String IdName;
private int IdNum; public String getIdName() {
return IdName;
} public void setIdName(String idName) {
IdName = idName;
} public int getIdNum() {
return IdNum;
} public void setIdNum(int idNum) {
IdNum = idNum;
}
}
  • StorageTest,.java
 package linkedlisttest;

 public class StorageTest
{
public void storageTest (){
for(int i=0;i<10;i++){
LinkListInfo linklistinfo = new LinkListInfo();
linklistinfo.setIdName("帅哥"+i);
linklistinfo.setIdNum(i);
LinkList.addToList(linklistinfo);//静态方法类可以直接使用
}
} }
  • MainTest.java
 package linkedlisttest;

 import java.util.List;

 public class MainTest {
public static void main(String[] args){
StorageTest storagetest = new StorageTest();
storagetest.storageTest();
List<LinkListInfo> linklistinfo = LinkList.getList();
for(int i=0;i<linklistinfo.size();i++){
System.out.println(linklistinfo.get(i).getIdName());
System.out.println(linklistinfo.get(i).getIdNum());
System.out.println("..........");
}
}
}

3.结果

 帅哥0
0
..........
帅哥1
1
..........
帅哥2
2
..........
帅哥3
3
..........
帅哥4
4
..........
帅哥5
5
..........
帅哥6
6
..........
帅哥7
7
..........
帅哥8
8
..........
帅哥9
9
..........

========================我是2014年2月12日的分割线========================

【后面的话】

节后的生活有归于平静了,必须在接下来的日子学习到更多,不要着急,一点一点来。

  分享:

社交网络≠阅读

阅读≠学习

学习≠生产

生产≠影响力

——TT

Java学习笔记(七)——获取类中方法的信息,java的LinkedList的更多相关文章

  1. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  2. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  3. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  4. 浅谈Java反射机制 之 获取类的 方法 和 属性(包括构造函数)

    上一篇 获取 类 的字节码文件 我们讲到了获取类的字节码文件的三种方法 第三种方法通过getClass("全路径名")获取字节码文件最符合要求 1.获取构造方法 先贴上我们要获取的 ...

  5. Java反射机制 之 获取类的 方法 和 属性(包括构造函数)(Day_06)

    把自己立成帆,才能招来凤. 运行环境 JDK8 + IntelliJ IDEA 2018.3  本文中使用的jar包链接 https://files.cnblogs.com/files/papercy ...

  6. 1.9(java学习笔记)object类及toString()与equals()方法

    object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...

  7. Java泛型学习笔记 - (七)浅析泛型中通配符的使用

    一.基本概念:在学习Java泛型的过程中, 通配符是较难理解的一部分. 主要有以下三类:1. 无边界的通配符(Unbounded Wildcards), 就是<?>, 比如List< ...

  8. Java学习笔记--继承和多态(中)

    1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...

  9. Java分享笔记:File类中常用方法的介绍

    java.io包下的File类用于描述和创建一个文件或文件夹对象,只能对文件或文件夹做一些简单操作,不能修改文件的内容,功能比较有限.下面是对于File类中常用方法的程序演示. [1] 演示程序一 p ...

随机推荐

  1. [codeforces/edu4]总结(F)

    链接:http://codeforces.com/contest/612/ A题: 枚举切多少个p,看剩下的能否整除q. B题: 从1到n模拟一下,累加移动的距离. C题: 先用括号匹配的思路看是否有 ...

  2. ACM1325Is it A tree?

    通过这道简单而又坑人的题目,练习并查集和set 容器的使用: Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: ...

  3. SDRAM初始化

    DDR配置过程比较复杂,基本上是按照DDR控制器的时序要求来做的,其中很多参数要结合DDR芯片本身的参数来定,还有些参数是时序参数,要去详细计算.所以DDR配置非常繁琐.细致.专业.所以我们对DDR初 ...

  4. Java设计模式の装饰者模式

    目录 一.问题引入 二.设计原则 三.用装饰者模式解决问题 四.装饰者模式的特点 五.装饰者模式的定义 六.装饰者模式的实现 七.java.io包内的装饰者模式 一.问题引入 咖啡店的类设计: 一个饮 ...

  5. linux删除乱码

    一:前沿 好久没有记载东西了,回来之后一直忙着改东西,我走之前项目是什么样,回来后也差不多.郁闷啊,努力敲代码,但是要敲出思想来啊.先会做,然后深入思考 二:内容 (1)每次使用rz命令向服务器上传代 ...

  6. cookie与session的区别与应用

    通常我们所说的浏览器自动保存密码,下次不用登陆,提示一次就不再出现的内容,大部分通过cookie或者session来实现的. cookie的概念 cookie是浏览器(User Agent)访问一些网 ...

  7. bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形——极角排序

    Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责.从她的守卫塔向下瞭望简直就是一件烦透了的事情.她决定做一些开发智力的小练习,防止她 ...

  8. JS中的实例方法与静态方法

    一.静态方法与实例方法的例子: 我们先来看一个例子来看一下JS中的静态方法和实例方法到底是什么 静态方法: function A(){} A.sayMeS=function(){ console.lo ...

  9. .net WebAPI返回xml、json格式

    WebAPI返回xml.json格式简单示例 using System.Net.Http.Formatting; public class TestController : ApiController ...

  10. Linux内核【链表】整理笔记(2) 【转】

    转自:http://blog.chinaunix.net/uid-23069658-id-4725279.html 关于链表我们更多时候是对其进行遍历的需求,上一篇博文里我们主要认识了一下和链表操作比 ...