package com.ch;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
/**
* 根据反射取对象的值
*
* @author zhangqiulong
*
*/
public class Debug {
private static void println(Object object) {
StringBuffer str = new StringBuffer();
if (object != null) {
try {
Class clazz = object.getClass();
str.append(clazz.getName()+":");
if(clazz == String.class|| clazz == int.class|| clazz == double.class|| clazz == float.class||clazz==char.class
|| clazz == boolean.class|| clazz == short.class|| clazz == long.class|| clazz == Integer.class
|| clazz == Double.class|| clazz == Float.class|| clazz == Boolean.class|| clazz == Short.class
|| clazz == Long.class||clazz==Character.class)
{
str.append(" ").append(object);
}
else if(object instanceof Collection)
{
str.append("[size=").append(((Collection)object).size()+"]");
}
else
{
Method[] metds=clazz.getMethods();
Field[] fds = clazz.getDeclaredFields();
for (Field field : fds) {
field.setAccessible(true);
boolean b=false;
for (Method method : metds) {
if(method.getName().equals("get" + change(field.getName()))){
b=true;
break;
}
}
if(!b){continue;}
Method metd = clazz.getMethod("get" + change(field.getName()), null);
Object ret = metd.invoke(object, null);
str.append(" ").append(field.getName()).append("=").append(ret);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(str.toString());
}
/**
* @param src
* 源字符串
* @return 字符串,将属性的第一个字母转换为大写,属性为空时返回null
*/
public static String change(String src) {
if (src != null) {
StringBuffer sb = new StringBuffer(src);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
return sb.toString();
} else {
return null;
}
}
}
分享到:
相关推荐
根据给定文件的信息,我们可以从中提炼出四个不同的Java编程题目及其解决方案。下面将对这些题目进行详细的解析: ### 一、斐波那契数列(兔子繁殖问题) **题目描述**: 有一个经典的数学问题,涉及一对兔子从...
在深入分析Android平台Dalvik虚拟机的可执行文件 dex 格式之前,我们需要了解 dex 文件在 Android 应用开发中的作用。dex 文件是 Android 平台上的 Java 程序编译后的产物,它是专门为了满足移动设备的运行环境而...
### JSP的内置对象及其用法 在Java Server Pages (JSP)技术中,为了方便开发者进行Web应用程序的开发,JSP提供了一系列内置的对象。这些内置对象无需显式声明即可直接使用,极大地简化了Web应用的开发过程。...
### Java笔试面试试题知识点解析 #### 一、Java概述 **1.1 Java是如何实现跨平台的?** Java的核心设计理念之一就是跨平台性,即“一次编写,到处运行”。这主要通过以下两个方面实现: - **编译为字节码**:...
由于提供的文件信息中,【部分内容】的具体内容并未直接给出,而是通过图片格式的链接呈现,我无法直接提供这些图片中的文本内容。但我将基于【标题】、【描述】、【标签】中提供的信息,以及【部分内容】的文字描述...
- 输出语句 `System.out.printIn` 错误,正确的应该是 `System.out.println`. **修正后代码:** ```java public class MyJavaClass{ int a; MyJavaClass(int a){this.a=a;} public static void main(String[] ...
例如,在题目中的示例程序中,关键字`public`和`static`的缺失以及`printIn`的拼写错误都会导致程序无法正常编译和运行。 ### 7. Java程序的执行方式 Java程序的执行方式有两种: - **解释执行**:通过JVM解释执行...
2. **编译错误**:这段代码存在多个错误,包括静态变量声明的位置、返回值类型不匹配以及System.out.printIn(j)方法名拼写错误。因此,编译不会成功。 #### 四、HTML表单元素操作 1. **选择表单元素的值**:在...
文档中publicclassicHello{publicvoidmain(String[]args){System.out.printIn();}表示有一个类叫classicHello,并且包含一个main方法,用于程序的执行。 - **包(package)**:Java包是一个命名空间,用于组织类和...
System.out.printIn(currentLine); ``` - `newSocket("time-a.nist.gov",13);`:创建一个连接到指定服务器(time-a.nist.gov)和端口(13)的TCP连接。 - `BufferedReader`:用于从连接中读取数据。 ##### 2. ...
选项b)中的"system"拼写错误,选项c)和d)中的"printin"也是拼写错误,应为"println"。所以b),c),d)均不是正确答案。 在Java中对字符串进行操作也是基础知识点之一。例如,要获取字符串"hello"中字符'e'的索引位置...
JAVA试题(100道) —————————————————————————————————————— 题目1: 下面不属于基本类型的是:c (选择1项) A) boolean B) long C) String D) byte ...(1)public class Char...
事件类型: 警告事件来源: TermServDevices事件种类: 无事件 ID: 1114日期: 2006-12-19事件: 15:50:17用户: N/A计算机: 描述:跟后台打印程序系统服务通讯时出现错误。请打开服务管理单元,确认后台打印程序...
在这个例子中,`s -> System.err.println(s)` 实现了 `SingleParameter` 接口中的 `printin` 方法,其中 `s` 对应于方法参数 `Object msg`,`->` 后面的代码块是方法的实现。 2. **有返回值的Lambda表达式** ```...
机智命令行 linux 无线工具包这个工具是围绕iw和wpa_supplicant命令的一个小包装,使命令行中的无线网络变得简单而愉快。用法 wit Automatically connect to an ... Search the known network list by SSID, printin