【前面的话】

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

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

【知识汇总】

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

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. 题解【luogu4168 [Violet]蒲公英】

    Description 给出一个长度为 \(n\) 序列 \(a\) ,\(m\) 次询问,每次询问区间 \([l,r]\) 里的众数(出现次数最多的数).若有多个,输出最小的. \(a_i \leq ...

  2. HRBUST 1819

    石子合并问题--圆形版 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 61(27 users) Total Accepted: 26( ...

  3. HDU1573 线性同余方程(解的个数)

    X问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. git设置不需要密码

    https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速 设置记住密码(默认15分钟): git config --global credenti ...

  5. [LeetCode] 2. Add Two Numbers ☆☆

    You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...

  6. 解决gitlab关闭登录选项问题

    1.连接资料库      mysql -uroot -p   2.use gitlabhq_production; 3.进入后,输入下面语句UPDATE application_settings se ...

  7. mysql 并发下数据不一致的问题分析及解决

    MySQL 5.6 , InnoDB存储引擎,默认事务隔离级别(REPEATABLE-READ) 初始sql 脚本如下: CREATE DEFINER=`root`@`localhost` PROCE ...

  8. bzoj1862/1056: [Zjoi2006]GameZ游戏排名系统

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1862 http://www.lydsy.com/JudgeOnline/problem.ph ...

  9. 【比赛】洛谷夏令营NOIP模拟赛

    Day1 第一题 水题 第二题 题意:一个n*m的字符矩阵从左上到右下,经过字符形成回文串的路径数.n≤500 回文串,考虑两段往中间DP. f[k][x][y]表示走了k步,左上点横坐标为x,右下点 ...

  10. JS之window对象

    window对象 window属性: opener:打开当前窗口的源窗口,如果这个窗口是由别的网页点击链接跳转过来的,或者是从另外一个页面点击打开窗口打开的,opener就是找到源页面的.如果当前窗口 ...