反射机制得到自己定义的方法问题

问题描述

Typetype=obj.GetType(methodName);MethodInfo[]methods=type.GetMethods();///methods里得到了所有方法的集合inti=0;foreach(MethodInfomethodinmethods){if(method.IsPublic)//这里是得到方法集合中的方法是否是公共方法。{Console.WriteLine("methodname:"+method.Name);}}编译结果:methodname:get_UserIdmethodname:Set_UserIdmethodname:get_UserNamemethodname:Set_UserNamemethodname:Showmethodname:Testshowmethodname:GetTypemethodname:ToStringmethodname:Equalsmethodname:GetHashCode其中前面四个是我的属性,后面四个是系统的方法。我要得到是中间的两个方法show,Testshow.这两个方法是我自己写的。请问怎样才能得到自己写的方法不还要属性。

解决方案

解决方案二:
帮顶
解决方案三:
嘗試加type.GetMethods(BindingFlags);去試試。可能會有你想要的效果。
解决方案四:
我尝试过还是不行啊!难道就没有高人指点??????
解决方案五:
CustomizeAttribute标记你的方法,反射控制即可。
解决方案六:
//这里是得到方法集合中的方法是否是公共方法?这个问题我来回答,不只是公共方法。你可以在foreach的循环中找到私有的方法。并且能看到它的访问控制权限。当然可以使用BindingFlags来过滤一些你不想要的方法。反射还有一个方法叫:GettyProperties()能够得到属性要想只得到你自己写的方法,好像不太现实。但是你只得到你自己的方法有用吗,我很奇怪。使用反射时你肯定的知道自己的方法名字,参数类型,返回值这些信息啊。
解决方案七:
引用5楼jummy_lin的回复:

//这里是得到方法集合中的方法是否是公共方法?这个问题我来回答,不只是公共方法。你可以在foreach的循环中找到私有的方法。并且能看到它的访问控制权限。当然可以使用BindingFlags来过滤一些你不想要的方法。反射还有一个方法叫:GettyProperties()能够得到属性要想只得到你自己写的方法,好像不太现实。但是你只得到你自己的方法有用吗,我很奇怪。使用反射时你肯定的知道自己的方法名字,参数类型,返回值这些信息…

我错了,对不起。{这里是得到方法集合中的方法是否是公共方法?这个问题我来回答,不只是公共方法}这里如果不使用BindingFlags,默认得到的确实是共有方法。
解决方案八:
1学习

时间: 2024-12-23 02:49:20

反射机制得到自己定义的方法问题的相关文章

java反射机制 getreturntype是如何知道方法返回值类型的

问题描述 java反射机制 getreturntype是如何知道方法返回值类型的 各位大神,小弟有一事不明 我们有一个变量,就是方法名 java反射机制 getReturnType()是如何知道我要定义的这个方法的返回值类型. 它怎么知道我要的这个方法应该返回什么值?? 解决方案 java编译后的.class文件里面记录了类的全部信息,包括方法的返回值.参数.异常等.程序运行时,.class文件会被加载到运行时数据区,java反射 机制就是从类型信息中获取装载类解析后的详细信息的. 解决方案二:

利用java反射机制调用类的私有方法(推荐)_java

试想一下,如果你可以轻易地调用一个类的私有方法,那么是不是说你的封装都失效了?最近在看java的反射机制,发现居然可以利用java的反射机制去调用其他类的私有方法,至于这能干什么,那就见人见智了.. 我写的一段简易实例代码如下: import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * @author thomaslwq * @version 创建时间:Sep 4, 201

Java反射机制剖析:定义和API

1.什么是Java反射机制 Java的反射机制是在程序运行时,能够完全知道任何一个类,及其它的属性和方法,并且能够任意调用一个对象的属性和方法.这种运行时的动态获取就是Java的反射机制.其实这也是Java是动态语言的一个象征. 用一句话来概括反射就是加载一个运行时才知道的类以及它的完整内部结构. 2.为什么要有Java反射机制 我们为什么要用Java的反射机制呢? 我认为有两种: 第一种:反射的目的就是为了扩展未知的应用.比如你写了一个程序,这个程序定义了一些接口,只要实现了这些接口的dll都

根据实例详解Java中的反射机制

概念:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.作用:Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对象:在运行时判断任意一个类所具有的成员变量和方法:在运行时调用任意一个对象的方法:生成动态代理. 可以说Java的反射机制是Java中所有框架的基础,要对SSH等框架有一个深刻的理解

Java反射机制剖析:简单谈谈动态代理

通过<Java反射机制剖析:定义和API>和<Java反射机制剖析:功能以及举例>的学习,已经对反射有了一定的了解,这一篇通过动态代理的例子来进一步学习反射机制. 1.代理模式 代理模式就是为其他对象提供一种代理来控制对这个对象的访问.其实代理模式是在访问的对象时引入一定程度的间接性,这种间接性可以附加多种用途. 它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关系,一个代理类

java 反射机制

今天和同事一起开发一个Android App的时候,第一次接触到了反射机制这样一个东西,于是上网查了很多资料,看了一些文档.现在终于有了一点了解,故将其写下,大牛勿喷.   首先,我们所学的编程语言大致可以分为两种,第一种为静态语言:C.C++.java ,这些语言的的变量类型一旦确定将不可更改:还有一类为动态语言:Perl.Python  这些语言的变量类型是可以更改的.但是java又区别于一般的静态语言,因为其具有动态机制,所以java可以加载一个在运行时才确定的Class,得知其完整的构造

Java反射机制(三):调用对象的私有属性和方法

一. 通过反射调用类中的方法 在正常情况下,得到类的对象后,我们就可以直接调用类中的方法了,如果要想调用的话,则肯定必须清楚地知道要调用的方法是什么,之后通过Class类中的getMethod方法,可得到Method对象. public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException 当获取到Method对象后,可以通过该对象来执行

利用java反射机制实现自动调用类的方法

 1. 新建TestServlet类 package com.yanek.test; import java.io.IOException; import java.lang.reflect.Method; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.h

Java反射机制既然可以拿到class对象,知道其中方法为啥不直接使用对象调用方法?

问题描述 Java反射机制既然可以拿到class对象,知道其中方法为啥不直接使用对象调用方法? Java反射机制既然可以拿到class对象,知道其中方法为啥不直接使用对象调用方法?而要invoke来调用对象的方法? 解决方案 知道方法的话当然可以不用invoke.需要invoke的方法大多是在写代码的时候无法确定的 解决方案二: 问题出现的场景是什么? 解决方案三: 面向接口,有些包是不同厂商实现的 反射能通过编译,在运行时才报错 解决方案四: 没有你想的那么简单,你多看看java的设计模式,和