`

[原]对Class.getMethod()的调用未经检查

阅读更多
[标题]:对Class.getMethod()的调用未经检查
[时间]:2009-4-5
[摘要]:警告:[unchecked]对作为普通类型 java.lang.Class 的成员的 getMethod(java.lang.String,java.lang.Class <?>...) 的调用未经检查.
[关键字]:Class,getMethod,unchecked,反射,reflection,范型
[环境]:JDK6
[作者]:Winty (wintys@gmail.com)

[错误]:
Class myClass = MethodPointerTest.class;
Method add = myClass.getMethod("add" , int.class , int.class );
上述代码出现如下警告:
警告:[unchecked]对作为普通类型 java.lang.Class 的成员的 getMethod(java.lang.String,java.lang.Class <?>...) 的调用未经检查.

[解决]:
是范型在作怪。Class修改为Class<?>:
Class<?> myClass = MethodPointerTest.class;
Method add = myClass.getMethod("add" , int.class , int.class );
分享到:
评论

相关推荐

    class.getMethods()

    在Java编程语言中,`Class.getMethods()`是一个非常重要的方法,它属于`java.lang.Class`类。这个方法用于获取指定类或接口的所有公共方法,包括继承自超类和实现的接口的方法。`getMethods()`返回一个`Method`对象...

    jface开发的几个包都在里面了

    at java.lang.Class.getMethod0(Unknown Source) at java.lang.Class.getMethod(Unknown Source) at sun.launcher.LauncherHelper.getMainMethod(Unknown Source) at sun.launcher.LauncherHelper....

    Java方法反射调用demo

    Method method = MyClass.class.getMethod("myMethodWithObjectArg", Object.class); method.invoke(myInstance, myObjectParam); ``` 对于基本类型参数,如`int`,由于Java的类型擦除,我们需要使用对应的包装类。...

    Android中获取应用程序(包)的信息 PackageManager的使用

    总的来说,`PackageManager`是Android开发中不可或缺的一个工具,它使得开发者能够对系统中的应用进行管理和控制,提供了丰富的功能,如查询应用信息、检查权限、解析Intent等。正确地使用`PackageManager`可以极大...

    java 反射getClass .class 的使用方法示例

    Java 反射机制中getClass()和.class的使用方法示例 本文主要介绍了 Java 反射机制中getClass()和.class的使用方法,并结合实例形式分析了 Java 类反射机制的相关操作技巧。 一、获取类的反射 在 Java 中,可以...

    C# 获取调用函数 参数名称和值

    反射是.NET框架提供的一种强大工具,它允许程序在运行时检查自身的信息,如类型、方法、属性、字段等,并能动态地创建和调用对象。获取调用函数的参数信息主要依赖于`StackTrace`类和`MethodBase`类。 1. **Stack...

    Java反射方法调用

    Method method = clazz.getMethod("yourMethodName", String.class); method.invoke(instance, "yourParameter"); ``` 调用基本类型参数的方法,我们需要使用包装类作为`getMethod()`的参数类型。比如,如果我们有...

    JAVA基础--JAVA中的反射机制详解

    在上面的代码中,首先通过 `Class.forName(className)` 获取该类的 Class,然后配置参数的 Class 数组,接着通过 `ownerClass.getMethod(methodName, argsClass)` 获取该类的静态方法,最后通过 `method.invoke(null...

    java反射实例.

    Method setNameMethod = userClass.getMethod("setName", String.class); // 调用setter方法设置name setNameMethod.invoke(userObj, "张三"); // 获取age属性的setter方法 Method setAgeMethod = userClass....

    Java反射经典实例 Java Reflection Cookbook[1].pdf

    反射是Java编程语言中的一个重要特性,它允许程序在运行时检查自身结构(如类、字段、方法等),并且可以在运行时调用任意一个类的成员(包括私有成员)。这一特性为Java提供了极大的灵活性,使其成为诸如Spring框架...

    java中的反射机制(内含大量实例)

    1. 获取`Class`对象:通过`Class.forName("全限定类名")`,`类名.class`,或者`对象.getClass()`。 2. 创建对象:使用`Class.newInstance()`(要求类有无参构造器)或`Constructor.newInstance()`(传入构造参数)。...

    JAVA RMI远程调用方法代码

    通过`Remote.class.getMethod()`获取该方法的`Method`对象,这是因为RMI底层使用了反射机制来实现远程方法调用。 ```java private static Method $method_getMemberAccountCount_5; static { try { $method_...

    JavaBean 方法的动态调用

    Method sayHelloMethod = personClass.getMethod("sayHello", String.class); sayHelloMethod.invoke(personInstance, "张三"); // 调用sayHello方法,传入参数"张三" ``` 动态调用方法在许多场景下都非常有用,...

    java反射机制

    调用对象的方法需要先获取Method对象,这可以通过`Class ownerClass = owner.getClass()`获取对象的Class,然后`Method method = ownerClass.getMethod(methodName, argsClass)`根据方法名和参数类型数组查找对应的...

    反射,动态加载指定类调用类中的方法

    Method method = clazz.getMethod("dynamicMethod", String.class); // 3. 创建对象(假设DynamicClass有无参构造器) Object instance = clazz.getDeclaredConstructor().newInstance(); // 4. 调用方法 ...

    Java 反射(Reflection) 经典实用例子

    Method method = ownerClass.getMethod(methodName, argsClass):通过Method名和参数的Class数组得到要执行的Method。 method.invoke(owner, args):执行该Method,invoke方法的参数是执行这个方法的对象,和参数...

    java反射机制(一)

    Method setAgeMethod = personClass.getMethod("setAge", int.class); setAgeMethod.invoke(person, 25); } } ``` 在这个例子中,`ReflectTester`展示了如何使用反射来操作`Person`类的私有字段和方法。请注意,...

    ReflectionUtil:反射工具包

    Method concat = String.class.getMethod("concat", new Class[]{String.class}); Method println = PrintStream.class.getMethod("println", new Class[]{String.class}); builder.constant("hello") //定义常量 ....

    java反射的简单代码例子

    Method method = SomeClass.class.getMethod("methodName", argTypes); method.invoke(objectInstance, arguments); ``` 4. **访问字段** - `Field对象`提供了`set()`和`get()`方法来设置和获取字段的值,如: ...

    Java中的CLASS类Java中的CLASS类

    Method method = Point.class.getMethod("toString"); String pointStr = (String) method.invoke(point); System.out.println("Point as string: " + pointStr); ``` 10.泛型与Class对象 泛型在Java中提供了类型...

Global site tag (gtag.js) - Google Analytics