java - Android - forName() 方法 ClassNotFoundException

标签 java android eclipse reflection

我试图测试 forName() 的工作原理,但由于某种原因我收到了 ClassNotFoundException 。这是我的代码:

package practicePackage;

import java.lang.Class;

public class mainClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            Class testSar = Class.forName("practicePackage.Animal");
            testSar.eat();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

这是我的包裹的完整 View Image

我做错了什么?

编辑:

这是我的 Animal.java 文件:

package practicePackage;

public class Animal {
    int hunger;
    char[] food;
    int[] pos;
    int[] boundary;

    public Animal()
    {
        System.out.println("Animal Constructed..");
    }

    public void makeNoise()
    {
        System.out.println("Animal noise..");
    }

    public void eat()
    {
        System.out.println("Animal eat..");
    }

    public void sleep()
    {
        System.out.println("Animal sleep..");
    }

    public void roam()
    {
        System.out.println("Animal roam..");
    }

}

最佳答案

您调用 eat 方法的方式是错误的。当你这样做时

Class testSar = Class.forName("practicePackage.Animal");

它返回 Animal 类而不是 Animal 实例。正确的方法是添加以下行:

Animal instanceAnimal = (Animal)testStar.newInstance();
instanceAnimal.eat()

不过我不确定 ClassNotFoundException。除了我上面提到的之外,您的代码中的所有内容看起来都很好。

也许仔细检查您的文件是否未被排除在构建路径之外,或者尝试使用另一个类,看看其他类是否也会发生这种情况

关于java - Android - forName() 方法 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25322347/

相关文章:

java - 排除 java、Eclipse 中的 java 类

java - 试图让这两个数组将输入总和存储在第三个列表中

java - 如何在 Java 中无需密码即可验证 WSO2IS 用户管理 API

android - 有什么方法可以禁用/覆盖 Galaxy Tab 4 上的多任务按钮?

java - 为什么 AbstractApplicationContext 会为 LogFactory 抛出 NoClassDefFoundError?

Java2D/Swing : Rendering a component with text anti aliasing to a BufferedImage

android - Linkify + textIsSelectable

android - 无法启动 Activity 组件信息---Nullpointerexception

eclipse - 多机开发和版本控制的最佳实践

java - 如何在 Eclipse 断点中降低 Java testrunner 的优先级?