Java基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2903字,纯文字阅读大概需要5分钟。
内容图文
Java提供了强大的反射机制,可以通过Class类获取任何的字段,方法,构造函数,并对它们进行修改或者调用。下面的例子演示了怎么通过java.lang.reflect包下的类获得String类的所有字段,构造函数,方法。
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.Parameter; public class Reflection { @SuppressWarnings("rawtypes") public static void main(String[] args) { Class<String> string = String.class; Field[] fields = string.getDeclaredFields(); Method[] methods = string.getDeclaredMethods(); Constructor[] constructors = string.getConstructors(); String name = ""; String typeName = ""; String visibility = ""; System.out.println("------------Field-------------------------"); // 遍历字段,打印出它的作用域,限定词,字段名 for (Field f : fields) { visibility = f.getGenericType().getTypeName(); name = f.getName(); typeName = f.getType().getTypeName(); visibility = isVisibility(f.getModifiers()); System.out.println(visibility + typeName + " " + name + ";"); } String returnType = ""; String params = ""; System.out.println("-----------constructor----------------------------"); // 遍历构造函数 for (Constructor c : constructors) { visibility = isVisibility(c.getModifiers()); name = c.getName(); params= getParams(c.getParameters()); System.out.println(visibility + name + " (" + params + ") "); } System.out.println("-----------method----------------------------------"); // 遍历函数,打印出它的作用域,返回类型,函数名,传递的参数 for (Method m : methods) { name = m.getName(); returnType = m.getReturnType().getTypeName(); params = getParams(m.getParameters()); visibility = isVisibility(m.getModifiers()); System.out.println(visibility + returnType + " " + name + " (" + params + ") "); } } private static String getParams(Parameter[] parameters) { // TODO Auto-generated method stub String params = ""; for (Parameter p : parameters) { params += p.getType().getTypeName() + " " + p.getName() + ","; } if (params.length() > 0) params = params.substring(0, params.length() - 1); return params; } /** * 查询字段或方法的访问权限 * * @param modifiers * @return 字段/方法的作用域 */ private static String isVisibility(int modifiers) { // TODO Auto-generated method stub String visibility = ""; if (Modifier.isPrivate(modifiers)) { visibility += "private "; } if (Modifier.isProtected(modifiers)) { visibility += "protected "; } if (Modifier.isPublic(modifiers)) { visibility += "public "; } if (Modifier.isAbstract(modifiers)) { visibility += "abstract "; } if (Modifier.isStatic(modifiers)) { visibility += "static "; } if (Modifier.isFinal(modifiers)) { visibility += "final "; } if (Modifier.isNative(modifiers)) { visibility += "native "; } if (Modifier.isVolatile(modifiers)) { visibility += "volatile "; } if (Modifier.isSynchronized(modifiers)) { visibility += "synchronized "; } if (Modifier.isTransient(modifiers)) { visibility += "transient "; } return visibility; } }
原文:http://blog.csdn.net/u013769320/article/details/45273355
内容总结
以上是互联网集市为您收集整理的Java基础全部内容,希望文章能够帮你解决Java基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。