初学java反射的问题 一直抛出classnotfoundexception

问题描述

初学java反射的问题 一直抛出classnotfoundexception
public class TestReflection {

public static void main(String[] args) {    try{        String str = ""T"";        Class c = Class.forName(str);        c.newInstance();    } catch (ClassNotFoundException e) {        e.printStackTrace();    } catch (InstantiationException e) {        e.printStackTrace();    } catch (IllegalAccessException e) {        e.printStackTrace();    }}

}

class T {

static {    System.out.println(""T Loaded!"");}int i;String s;public void m (int i) {    this.i = i;}public String getS() {    return s;}

}

抛出的异常如下:
java.lang.ClassNotFoundException: T
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at TestReflection.TestReflection.main(TestReflection.java:8)

解决方案

通过反射实例化类时传递的类名称必须是全路径名称的。测试了下,修正T 的类名称为全路径就好了。

解决方案二:
怎么没包名,检查classpath,或者是否在同一个目录一下

解决方案三:
通过反射实例化类时传递的类名称必须是全路径名称的。测试了下,修正T 的类名称为全路径就好了。

时间: 2024-05-25 05:38:12

初学java反射的问题 一直抛出classnotfoundexception的相关文章

捕获Java线程池执行任务抛出的异常

捕获Java线程池执行任务抛出的异常Java中线程执行的任务接口java.lang.Runnable 要求不抛出Checked异常, public interface Runnable { public abstract void run(); } 那么如果 run() 方法中抛出了RuntimeException,将会怎么处理了? 通常java.lang.Thread对象运行设置一个默认的异常处理方法: java.lang.Thread.setDefaultUncaughtExceptionH

java中重写方法必须抛出和原方法一样的异常或者不抛异常

class A {     public void method throws IOException(){} } // 错误 class B {     public void method throws FileNotFoundException(){} } // 错误 class C {     public void method throws Exception(){} } // 错误 class D {     public void method throws IOExceptio

Java反射

1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数.属性.父类.接口等 Class 内部信息的机制.通过反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值,即使方法或属性是私有的的也可以通过反射的形式调用,这种"看透 class"的能力被称为内省,这种能力在框架开发中尤为重要. 有些情况下,我们要使用的类在运行时才会确定,这个时候我们不能在编译期就使用它,因此只能通过反射的形式来使用在运

公共技术点之 Java 反射 Reflection

转发自  :http://a.codekk.com/detail/Android/Mr.Simple/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Java%20%E5%8F%8D%E5%B0%84%20Reflection 本文为 Android 开源项目源码解析 公共技术点中的 Java 反射 部分 分析者:Mr.Simple,校对者:Trinea,校对状态:未完成 1. 了解 Java 中的反射 1.1 什么是 Java

笔记 - Java 反射

通过Java反射,可以实现以下功能:     > 在运行时判断任意一个对象所属的类     > 在运行时构造任意一个类的对象     > 在运行时判断任意一个类所具有的方法和属性     > 在运行时调用任意一个对象的方法 反射常用API:     > Class类:反射的核心类,反射所有的操作都是围绕该类来生成的,通过Class类,可以获取类的属性,方法等内容信息.     > Field类:表示该类的属性(字段),可以获取和设置类中属性的值.     > Me

Java反射机制研究

http://blog.csdn.net/jia635/article/details/39256187 以前听同时说反射很强大,看了一些相关文章今天把反射总结一下. 说明:反射主要用于开发框架,即制作框架: 一.获得Class对象 Class<?> c = Class.forName("classname");   抛出ClassNotFoundException 二.获得实现接口 Class<?> inters[] = c.getInterfaces();

一个例子让你了解Java反射机制

通俗地说,反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们. 理论的东东太多也没用,下面我们看看实践 Demo - Demo: package cn.lee.demo; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetExce

如何更合理的利用Java中的异常抛出

以前,我觉得编程语言中最让人不解的部分就是它能够创建错误.当时我对Java语言中的throw关键字的第一反应就是"啊,这也太傻了,为什么我们想要引发一个错误(error)?"我觉得错误是我的敌人,应当避免的,所以创建错误是毫无用处甚至是危险的.我认为在JavaScript中加入这样的关键字是多此一举.但随着我编程经验的丰富,我逐渐变成了throw我的error粉丝.合理的使用它们会让对代码的调试和维护大大简化. 在编程的时候,Error通常出现在不期望的事情发生时.可能是传入函数的参数

字节流-JAVA用二进制文件类复制图片抛出EOFException

问题描述 JAVA用二进制文件类复制图片抛出EOFException EOFException的意思我知道.我想知道怎么实现每次以4个字节的速度复制图片.用字符流会损坏图片,只能用字节流.字节流的子类DataInputStream和DataOutputStream配合每次就能传4个字节,传视屏不完整,但传图片就抛出EOFException.import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import j