1. 程式人生 > >Spring 反射工具類ReflectionUtils

Spring 反射工具類ReflectionUtils

    public static final int PUBLIC           = 0x00000001;

   
    public static final int PRIVATE          = 0x00000002;

 
    public static final int PROTECTED        = 0x00000004;

   
    public static final int STATIC           = 0x00000008;

   
    public static final int FINAL            = 0x00000010;

    
    public static final int SYNCHRONIZED     = 0x00000020;

     
    public static final int VOLATILE         = 0x00000040;

      
    public static final int TRANSIENT        = 0x00000080;

     
    public static final int NATIVE           = 0x00000100;

      
    public static final int INTERFACE        = 0x00000200;

     
    public static final int ABSTRACT         = 0x00000400;

     
    public static final int STRICT           = 0x00000800;
上面的是Modifier裡面定義的靜態屬性

並且每一個都定義了一個判讀方法如

 public static boolean isPublic(int mod) {
	return (mod & PUBLIC) != 0;
    }
 public static boolean isPrivate(int mod) {
	return (mod & PRIVATE) != 0;
    }
  public static boolean isStatic(int mod) {
	return (mod & STATIC) != 0;
    }


ReflectionUtils這個反射工具類有幾個工具方法,首先介紹幾個控制訪問許可權的方法makeAccessible

它由3個過載,分別是對屬性,方法和構造

屬性

	public static void makeAccessible(Field field) {
		if ((!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers()) ||
				Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) {
			field.setAccessible(true);
		}
	}
方法
public static void makeAccessible(Method method) {
		if ((!Modifier.isPublic(method.getModifiers()) || !Modifier.isPublic(method.getDeclaringClass().getModifiers()))
				&& !method.isAccessible()) {
			method.setAccessible(true);
		}
	}
構造
	public static void makeAccessible(Constructor<?> ctor) {
		if ((!Modifier.isPublic(ctor.getModifiers()) || !Modifier.isPublic(ctor.getDeclaringClass().getModifiers()))
				&& !ctor.isAccessible()) {
			ctor.setAccessible(true);
		}
	}

相關推薦

Spring 反射工具ReflectionUtils

public static final int PUBLIC = 0x00000001; public static final int PRIVATE

Spring反射工具 ReflectionUtils

/* * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you ma

反射工具ReflectionUtils

import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.refl

Spring boot 工具靜態屬性註入及多環境配置

data 地址 val 文件 source 其他 username eat serve 由於需要訪問MongoDB,但是本地開發環境不能直接連接MongoDB,需要通過SecureCRT使用127.0.0.2本地IP代理。但是程序部署到線上生產環境後,是可以直接訪問Mong

redis整合spring(redisTemplate工具) redis整合spring(redisTemplate工具)

redis整合spring(redisTemplate工具類) 原文地址:http://blog.csdn.net/qq_34021712/article/details/75949706   ©王賽超 前言 關於哨兵模式的配置,我是參考網上

spring註解工具AnnotatedElementUtils和AnnotationUtils

一、前言   spring為開發人員提供了兩個搜尋註解的工具類,分別是AnnotatedElementUtils和AnnotationUtils。在使用的時候,總是傻傻分不清,什麼情況下使用哪一個。於是我做了如下的整理和總結。 二、AnnotationUtils官方解釋   功能   用於處理註解,處

移植Xposed的反射工具

序章 在開發Xposed模組時感覺XposedHelper這個反射工具類特別好用,但是好像只能在模組裡使用,於是就想把它移植出來! 使用方法 反射呼叫Toast彈窗提示 private stat

反射工具原始碼

1 import java.lang.reflect.Field; 2 import java.lang.reflect.InvocationTargetException; 3 import java.lang.reflect.Method; 4 import java.lang.refle

java反射工具--通過指定屬性名,獲取/設定物件屬性值

java物件通過點運算子操作物件屬性的方式沒法使用for,while等迴圈,此工具主要解決這一問題. 例如:有一物件包含屬性有一定規律 obj1: { name1: "張三", age1: 1, name2: "李四", age2: 2

spring mvc 工具的靜態方法使用注入

類程式碼 @Component public class RegisterConfig { @Autowired private DepartMentService departMentService; public void

Spring工具中使用註解注入Bean

public class LogUtil { @Autowired private LogService logService; private static Lo

[Java工具]spring常用工具 2.特殊字元轉義和方法入參檢測工具

特殊字元轉義 由於 Web 應用程式需要聯合使用到多種語言,每種語言都包含一些特殊的字元,對於動態語言或標籤式的語言而言,如果需要動態構造語言的內容時,一個我們經常會碰到的問題就是特殊字元轉義的問題。下面是 Web 開發者最常面對需要轉義的特殊字元型別: HTML 特

主動獲取spring容器工具SpringContextUtil

/** * 獲取spring容器,以訪問容器中定義的其他bean */ @Component public class SpringContextUtil implements ApplicationContextAware { // Spring應用上下文

反射應用進階篇之自定義反射工具在springmvc中的應用

本篇使用自定義工具類進行批量處理物件 ---將批量源物件的屬性值注入到實際需要的目標類物件(屬性名相同,型別不同)中 專案使用maven構建war工程:  spring+spring MVC+Mybatis 回顧知識點: 事務:--->為什麼在使用AOP時需要使

java 反射工具 ReflectHelper

package com.util; import java.lang.reflect.Field; /**  * @author Administrator  *    反射工具  */ public class ReflectHelper {     /**      *

【java reflection】反射工具總結

這段時間公司搞封閉開發,做一個聯通總部的客服系統專案,是基於springboot的。在開發工程中遇到一個頁面datagrid資料排序的功能,因為有多個表的資料都要用到排序功能,於是我就寫了一個排序功能的公共實現類,方便大家使用。在寫實現類的過程中需要通過反射去呼

反射工具訪問方法和屬性

package com.itany.util; import java.lang.reflect.*; /*  * 反射工具類  */ publicclass ReflectUtil { /* * 通過反射,獲取定義Class的父類引數的泛型的真實型別

反射獲取注入到spring中的物件的工具

package com.gameqp.common.reflect; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDe

(轉)Spring 的優秀工具盤點

空白 nts tee 環境 fin 編寫 and 程序調試 word 第 1 部分: 文件資源操作和 Web 相關工具類 http://www.ibm.com/developerworks/cn/java/j-lo-spring-utils1/ 文件資源操作 文件資源的操作

高可用的Spring FTP上傳下載工具(已解決上傳過程常見問題)

關於 package 輸入 .net rop inpu pasv for factory 前言 最近在項目中需要和ftp服務器進行交互,在網上找了一下關於ftp上傳下載的工具類,大致有兩種。   第一種是單例模式的類。   第二種是另外定義一個Service,直接通過