import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class test {
/**
* @param args
* @throws NoSuchMethodException
* @throws SecurityException
* @throws InvocationTargetException
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
person p=new person();
p.setName("lyc");
System.out.println(p.getName());
//反射无参方法,new Class[]{}使其为空数组即可;带参数的就不能是空数组了
Method method=p.getClass().getMethod("getName", new Class[]{});
System.out.println((String)method.invoke(p, new Object[]{}));
}
}
class person{
String name="";
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
}
分享到:
相关推荐
代码中包含的方法有如下 : 1. 创建一个Person实体类 2. 反射获取Class类对象的三种方法 2.1 通过全类名的方式获取 2.2 类名.class ... 5.1无参方法 5.2 有参方法 5.3 获取所有方法(包含Object的方法)
Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...
(通过反射获取无参构造方法并使用) (通过反射获取带参构造方法并使用) (通过反射获取私有构造方法并使用) (通过反射获取成员变量并使用) (通过反射获取无参无返回值成员方法并使用) (通过反射获取带参带返回值成员...
这包括无参方法和带参数的方法。 #### 示例代码分析 在给定的部分内容中,提供了前后端交互的代码示例。具体来看: 1. **前台页面代码**: ```java _self_tmp_dhxTree.loadXML("<%=path%>/servlet/...
`NoSuchMethodException`属于`java.lang.reflect`包,当反射API试图查找一个指定签名的方法而该方法不存在于目标类中时,会抛出此异常。这意味着在编译时存在该方法,但在运行时却由于某种原因(如类加载问题、方法...
3. **创建实例**: 通过`Class`对象的`newInstance()`方法,我们可以无参构造器创建类的实例。如果类没有无参构造器,可以使用`getConstructor()`和`newInstance(Object... initargs)`结合来创建实例。 4. **调用...
在这个主题中,我们将深入探讨如何使用Java反射来调用不同类型的参数方法,包括无参方法、Object类型参数的方法、基本类型参数的方法以及数组参数的方法,以及如何调用私有方法。 首先,要调用无参方法,我们可以...
在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类信息等。本篇文章将深入探讨如何使用Java反射来获取一个类的所有属性、方法,并处理List集合类。 首先,让我们了解...
2. **创建对象**:使用`Class`对象的`newInstance()`方法创建类的新实例,前提是该类有无参构造函数。如果类没有公共构造函数,可以使用`Constructor`类的`getDeclaredConstructor()`和`newInstance()`方法。 3. **...
如果`SUser`类有一个无参构造方法,我们可以通过以下方式创建对象: ```java Constructor<?> constructor = clazz.getConstructor(); Object instance = constructor.newInstance(); ``` 在`GetClassInstanceDemo...
在“反射,动态加载指定类调用类中的方法”这个主题中,我们将深入探讨如何使用反射来实现动态加载和执行类的方法。首先,我们需要理解几个关键的反射API: 1. `Class<?>`: 这是所有Java类的通用表示,通过`Class....
- `newInstance()`:通过无参构造器创建类的新实例。 - `getMethod()`, `getField()`, `getConstructor()`:获取指定名称的方法、字段或构造器,它们不包含父类的成员。 4. **反射示例**: 在给出的代码示例中,...
`Class.newInstance()`方法可以无参构造器创建一个实例,而如果类有带参数的构造器,我们需要使用`Constructor`对象的`newInstance()`方法,传入相应的参数。 对于私有方法和属性的访问,Java反射提供了一种特殊的...
如果类没有无参构造器或者构造器有参数,我们需要使用`getConstructor()`或`getConstructors()`获取构造器,然后通过`newInstance()`方法传入参数来创建对象。 对于方法的调用,我们可以使用`getMethod(String name...
如果方法无参,只需传入null即可。 5. **处理结果**:调用方法后,会返回一个结果,可能是基本类型、对象或自定义数据结构。根据返回值,我们可以解析硬件信息,例如,如果返回的是字符串,可能包含了CPU型号;如果...
2. **创建对象**:使用`Class`对象的`newInstance()`方法可以创建无参构造器的对象;如果有参数,需要使用`Constructor`类的`getDeclaredConstructor()`或`getConstructor()`方法获取构造器,然后调用`newInstance()...
反射可以让我们在不知道具体类型的情况下创建对象、调用方法、访问字段和属性,从而增加了代码的灵活性和可扩展性。 标题提到的".NET中反射的应用 获取Dll参数",指的是通过反射来获取DLL(动态链接库)中的类、...
- 如果类的构造器不是默认的无参构造器,可以通过`getConstructor()`和`newInstance()`方法传递参数创建实例。 ```java Class<?> clazz = Class.forName("com.example.MyClass"); Object obj = clazz.new...
- `newInstance()`: 调用无参构造器创建对象,如果类没有无参构造器,会抛出异常。 - `Constructor<?> getDeclaredConstructor(Class<?>... parameterTypes)`: 获取指定参数类型的构造器,然后通过`newInstance...
- 使用`newInstance()`方法,但要求该类必须有一个无参构造器:`Object obj = clazz.newInstance();` 3. 访问字段 - 获取字段:`Field field = clazz.getField("字段名");` - 设置字段值:`field.set(obj, 值);`...