1. 程式人生 > >Java反射機制(得到所有的構造方法)

Java反射機制(得到所有的構造方法)

Person

package org.lxh.demo.classdemo04;

interface Info {
 public static final String AUTHOR = "MLDN";

 public String getInfo();

 public String say(String name, String content);

 public void sayHello();
}

public class Person implements Info {
 private String name;
 private int age;

 public Person() {//無參構造方法
 }

 public Person(String name) {
  this.setName(name);
 }

 public Person(String name, int age) {
  this(name);
  this.setAge(age);
 }

 public String getInfo() {
  return "Hello World!!!";
 }

 public String say(String name, String content) {
  return name + "說了:" + content;
 }

 public void sayHello() {
  System.out.println("hello --> " + AUTHOR);
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public String toString() {
  return "姓名:" + this.name + ";年齡:" + this.age;
 }
}

GetConstructorDemo02

package org.lxh.demo.classdemo04;

import java.lang.reflect.Constructor;

public class GetConstructorDemo02 {

 public static void main(String[] args) throws Exception {
  Class<?> c = Class.forName("org.lxh.demo.classdemo04.Person");
  Constructor<?> con[] = c.getConstructors(); // 得到全部構造
  for (int i = 0; i < con.length; i++) {
   int mod = con[i].getModifiers(); // 得到修飾符
   Class<?> param[] = con[i].getParameterTypes(); // 得到全部的引數
   System.out.print(mod + " "); // 輸出內容
   System.out.print(con[i].getName() + " (");
   for (int x = 0; x < param.length; x++) {
    System.out.print(param[x].getName() + " arg-" + x);
    if (x < param.length - 1) {
     System.out.print(",");
    }
   }
   System.out.println(")");
  }
 }
}

GetConstructorDemo03

package org.lxh.demo.classdemo04;

import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;

public class GetConstructorDemo03 {

 public static void main(String[] args) throws Exception {
  Class<?> c = Class.forName("org.lxh.demo.classdemo04.Person");
  Constructor<?> con[] = c.getConstructors(); // 得到全部構造
  for (int i = 0; i < con.length; i++) {
   int mod = con[i].getModifiers(); // 得到修飾符
   String str = Modifier.toString(mod);// 還原許可權
   Class<?> param[] = con[i].getParameterTypes(); // 得到全部的引數
   System.out.print(str + " "); // 輸出內容
   System.out.print(con[i].getName() + " (");
   for (int x = 0; x < param.length; x++) {
    System.out.print(param[x].getName() + " arg-" + x);
    if (x < param.length - 1) {
     System.out.print(",");
    }
   }
   System.out.println(")");
  }
 }
}
 

相關推薦

Java反射機制(得到所有構造方法)

Person package org.lxh.demo.classdemo04; interface Info {  public static final String AUTHOR = "MLDN";  public String getInfo();  public

通過反射機制建立一個構造方法中引數數量可變的物件

自學的時候剛看到Class類與Java反射,才開始講解了Class類得到對應類構造方法的方法。 我們可以用getConstructors()等四個方法得到需要的Constructor構造方法或者其陣列,然後再利用Constructor的newInstance方法進行建立物件

通過Java反射機制獲取物件、方法和成員變數

先定義一個JavaBean package com.jim.test.Test; public class User { private int id; private String name = "abc"; private Str

[java]反射機制給屬性使用set方法構造物件

測試程式碼 package main; import java.lang.reflect.Field; import java.lang.reflect.Method; public clas

java 反射機制 之 getMethods獲取所有公有方法 和 getDeclaredMethods 獲取本類所有方法

檔案結構: Person: package demo2; public class Person { private int age; private String name; public Person( String name,int ag

反射機制--調用構造函數和成員方法、制作幫助文檔

port const center 分享 相關 src -- 知識 water 今天學習了關於反射的相關知識,通過反射能夠找到類中的構造方法和全部的成員方法。而並不了解這個類的構造的人能夠非常方便的運用反射機制。 掌握發射主要了解這幾個類,類位於java.long.re

利用JAVA反射機制實現調用私有方法

parse try ble cat 權限 利用 enabled tde mod 1.fragment是AccessibilityFragment的對象。須要被調用的方法的類。 setAccessible(true)並非將方法的訪問權限改成了public。而是取

Java反射機制demo(五)—獲得並調用一個類中的方法

color 擁有 oca logs over super getmethod equals() bool 這個demo在使用反射機制操作屬性之前,主要原因是因為在.class文件字節碼中,方法排在屬性的前面。 1,獲得一個類中的方法 先看一下方法和運行結果。獲取所有的方

javajava反射機制,動態獲取對象的屬性和對應的參數值,並屬性按照字典序排序,Field.setAccessible()方法的說明【可用於微信支付 簽名生成】

modifier 直接 this 字段值 1-1 讓我 toupper ima play 方法1:通過get()方法獲取屬性值 package com.sxd.test.controller; public class FirstCa{ private

java通過反射獲取私有的構造方法,及反射擦除泛型數據類型約束

code for循環 getmethod 不能 添加 class win flag ring /* * 反射獲取私有的構造方法運行 * 不推薦,破壞了程序的安全性,封裝性 * 暴力私有 */ public class ReflectDemo4 {

利用java反射機制方法進行呼叫

轉自:http://blog.csdn.net/coolcoffee168/article/details/5835143 基本步驟:首先獲取Class物件,然後用該物件獲取方法。具體的就看程式碼吧。對照本文最後的結果,會更好的理解反射機制。    

Java反射機制getModifiers()方法的作用

JAVA 反射機制中,Field的getModifiers()方法返回int型別值表示該欄位的修飾符。 其中,該修飾符是java.lang.reflect.Modifier的靜態屬性。 對應表如下: PUBLIC: 1 PRIVATE: 2 PROTECTED: 4 STATI

java反射機制——三種獲取class物件的方法

package cn.itcast.reflect.demo; import cn.itcast.bean.demo.Person; /** * * 獲取Class物件的3中方法: * * * */ public class ReflectDemo1 { public st

使用java反射機制動態調用javabean的get,set方法

pre 完成 cep doc return 形參 語言 基本 實例 轉自:https://blog.csdn.net/lixinyao5281/article/details/70146177?locationNum=14&fps=1&t=149327688

軟體測試---私有方法的呼叫(Java反射機制

1.私有構造方法如何例項化類? public class MSD { private int a; private String b; //無參構造方法 private MSD() { } //有參構造方法 private MSD(int a, Strin

通過java反射機制,獲取物件的屬性和值(包括所有繼承的父類)

      java的反射機制提供了兩種方法:    getDeclaredFields() :該方法能獲取到本類的所有屬性,包括private,protected和public,但不能獲取到繼承的父類的屬性。    getFields():既能獲取本類的屬性也能得到父類的

Java通過反射獲取帶引數構造方法並使用

package com.sanmao10; import java.lang.reflect.Constructor; public class test2 { /** * ###27.05_反射(通過反射獲取帶參構造方法並使用) *

java反射機制(2)- 實踐:反射機制+動態代理實現模擬RMI遠端方法呼叫

1 涉及主要知識點   1、RMI(Remote Method Invocation):遠端方法呼叫是一種計算機之間利用遠端物件互相呼叫實現雙方通訊的一種通訊機制。使用這種機制,某一臺計算機上

java反射機制 以及通過反射獲得類的變數欄位,方法,建構函式

        Class clz =Class.forName("day_29_ReflectAndJson.Person");         //前面獲取本類及其父類共有的方法就不再寫了 直接獲得本類中的所有方法 並傳引數後呼叫本方法         Method[] method=clz.getDec

利用Java反射機制呼叫含陣列引數的方法

–一個含有這種方法的Java類– public class Dao { public void Method2(String[] params){ //do something } } – 正確的方法– public class Test { public static void main