【前面的话】

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

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

【知识汇总】

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

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. [10.18模拟赛] 序列 (DP)

    [10.18模拟赛] 序列 题目描述 山山有一个整数序列s1,s2,-,sn,其中1≤si≤k. 求出有多少个准确移除m个元素后不同的序列.答案模(1e9+7) 输入 输入包括几个测试用例,并且由文件 ...

  2. Machine Learning CodeForces - 940F (带修改的莫队)

    You come home and fell some unpleasant smell. Where is it coming from? You are given an array a. You ...

  3. CMDB资产管理系统开发【day27】:cmdb API安全认证

    1.API验证分析 API三关验证 客户端和服务端中都存放一份相同的随机字符串,客户端发请求的时候把随机字符串和当前时间进行MD5加密,同时带着当前时间通过请求头发送到API,进入三关验证. 第一关是 ...

  4. wamp环境介绍

    一.简介 Wamp就是 Windows Apache Mysql PHP集成安装环境,即在window下的apache.php和mysql的服务器软件. 二.常用的集成环境 XAMPP - XAMPP ...

  5. gulp压缩css和js

    压缩 css 代码可降低 css 文件大小,提高页面打开速度. 规律转换为 gulp 代码 找到 css/ 目录下的所有 css 文件,压缩它们,将压缩后的文件存放在 dist/css/ 目录下.一. ...

  6. VUE 内置的标签<keep-alive></keep-alive>作用

    <keep-alive></keep-alive> 的作用是 包裹动态组件时,会缓存不活动的组件实例,主要用于保留组件状态或避免重新渲染组件

  7. 在centos中使用rpm安装包安装jenkins

    jenkins下载:http://pkg.jenkins-ci.org/redhat/ 下载rpm包到本地 在linux下使用rpm包安装命令: sudo rpm -ih jenkins-1.562- ...

  8. spring怎么实现单例模式?

    Spring学习之路——单例模式和多例模式   在Spring中,bean可以被定义为两种模式:prototype(多例)和singleton(单例) singleton(单例):只有一个共享的实例存 ...

  9. js监听浏览器后退事件

    $(document).ready(function(e) {             var counter = 0;            if (window.history && ...

  10. perl6 修改文件并覆盖

    use v6; my $filename = 'data.txt'; my $data = slurp $filename; say $data; $data ~~ s/'4'/'ABC'/; say ...