jboss源码中片段分析

来源:互联网 发布:js 所见即所得编辑器 编辑:程序博客网 时间:2024/06/01 08:13
package com.test;import java.security.AccessController;import java.security.PrivilegedAction;import java.util.ArrayList;import java.util.List;import java.util.ListIterator;//有兴趣可以自己执行玩耍public class Test_pkgsString {static final String[] systemPackages;static final String[] systemPaths;static {// final String pkgsString = AccessController.doPrivileged(new// PropertyReadAction("jboss.modules.system.pkgs"));final String pkgsString = "org.javaRasp,org.apache,javax.servlet";final List<String> list = new ArrayList<String>();if (pkgsString != null) {int i;int nc = -1;do {i = nc + 1;nc = pkgsString.indexOf(',', i);String part;if (nc == -1) {part = pkgsString.substring(i).trim();} else {part = pkgsString.substring(i, nc).trim();}if (part.length() > 0) {list.add((part + ".").intern());}} while (nc != -1);}systemPackages = list.toArray(list.toArray(new String[list.size()]));final ListIterator<String> iterator = list.listIterator();// http://youtrack.jetbrains.net/issue/IDEA-72097// noinspection WhileLoopReplaceableByForEachwhile (iterator.hasNext()) {iterator.set(iterator.next().replace('.', '/'));}systemPaths = list.toArray(list.toArray(new String[list.size()]));for (int i = 0; i < list.size(); i++) {System.out.println(systemPackages[i]);System.out.println(systemPaths[i]);}}public static void main(String[] args) {}}class PropertyReadAction implements PrivilegedAction<String> {private final String key;private final String defVal;PropertyReadAction(final String key) {this(key, null);}PropertyReadAction(final String key, final String defVal) {this.key = key;this.defVal = defVal;}public String run() {return System.getProperty(key, defVal);}}

原创粉丝点击