`
zcjl
  • 浏览: 42018 次
  • 性别: Icon_minigender_1
  • 来自: 70码之城
社区版块
存档分类
最新评论

如何引用没有包结构的类

阅读更多

这个问题源于java版网友的一个帖子

由于不带包结构的类无法被import
而直接使用的话,编译器会报错:cannot resolve symbol

联想到除了直接用new的方式创建一个对象外
还可以通过Class.forName().newInstance()的方式获取类的实例
于是写了一个测试例子如下:

//MyShow.java
//用以被调用的不带包结构定义的类
public class MyShow {
    public String show() {
        return "None Package";
    }
}


//MyClass.java
//用以测试调用的类
package com.zcjl.test.base;

import java.lang.reflect.Method;


public class MyClass {
    public static void main(String[] args) {
        try {
            Object obj = Class.forName("MyShow").newInstance();
            Class clazz = obj.getClass();
            Method method = clazz.getMethod("show", null);
            String returnValue = (String) method.invoke(obj, null);
            System.out.println(returnValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

bingo!编译通过,运行MyClass.class,控制台返回
None Package



分享到:
评论

相关推荐

    AS练习自定义包或类及引用

    包(package)是组织类的一种方式,通过合理的包结构可以使代码更有序。 2. 右键选择“New” -> “Java Class”或“Kotlin Class”,输入类名,例如“SimpleButton”。 3. 在新创建的类文件中,编写类定义。对于Java...

    java 类从哪个jar包加载的

    如果没有明确指定,JVM会使用默认的类路径,包括当前目录(".")、JRE的lib目录以及任何在`JAVA_HOME/lib/ext`目录下的JAR包。 在描述中提到的博文链接可能提供了更详细的解释,例如如何通过工具查看类的加载来源,...

    list转树形结构工具类

    在Java中,树形结构通常通过对象的引用关系来表示,比如使用类的实例作为节点,实例的成员变量引用其他节点。 将List转换为树形结构,通常涉及到以下步骤: 1. 定义树节点类:创建一个类,用于表示树的节点。这个...

    C#中类和结构的区别 -- 示例详解

    在C#编程语言中,类(Class)和结构(Struct)是两种主要的用户自定义数据类型,它们在很多方面有着相似的语法和用途,但关键的区别在于它们的内存管理和特性。以下是对类和结构之间区别的详细解释: 1. **值类型与...

    Idea 无法引用类问题解决办法

    值得注意的是,除了上述设置问题,还有其他可能的原因会导致无法引用类或注解,例如Maven或Gradle的依赖管理问题、项目结构问题、JDK版本不兼容等。在排查问题时,应确保所有依赖都已正确添加到构建文件(如pom.xml...

    类的使用,学习,小结 java定义一个学生类

    3. `friendly`(默认,没有修饰符):同一包内的类可以访问。 4. `private`:只有在同一类内可以访问。 类的定义可以包含这四个修饰符,例如: ```java public class MyClass { ... } ``` 表示这个类是公开的,可以...

    Java 中包的概念,类的说明符与内部类19

    Java的包结构类似于文件系统的目录结构,每个包都代表一个独立的命名空间。 在Java中,类的说明符包括访问修饰符、静态修饰符、最终修饰符(final)、抽象修饰符(abstract)等,这些修饰符用来控制类的可见性和...

    c++ 类的互相调用的方法

    在C++编程中,类的互相调用是一个常见的设计模式,用于实现复杂的系统结构和对象间的协作。这种机制使得代码更加模块化,提高了代码的复用性和可维护性。但正如描述中提到的,正确使用类的互相调用至关重要,避免...

    Java 中包的概念,类的说明符与内部类22

    - **静态内部类**:使用`static`修饰的内部类,不直接持有对外部类的引用,可以独立于外部类实例存在。 4. **孙鑫老师的JAVA教程**: 孙鑫老师的JAVA教程是众多Java初学者学习的重要资源。他的教学风格深入浅出,...

    eclipse中对包的访问

    2. **包结构的合理性**:确保你的包结构反映了代码的逻辑关系。如果这四个类有共同的职责或者紧密关联,它们应该被放在同一个包下。相反,如果它们各自独立,那么分开存放也是合理的。 3. **访问控制的调整**:如果...

    常用的公共类java

    3. 包(Package):在大型项目中,为了更好地组织和管理类,我们通常将类放入包中。公共类可以属于某个包,如`com.example.myproject`。在类声明前加上包名,如`package com.example.myproject;`,然后在其他地方...

    浅谈内部类与静态内部类的应用

    此外,过度使用内部类可能导致代码难以理解和维护,因此应根据实际需求和代码结构来决定是否采用内部类。 总之,内部类和静态内部类是Java中独特的类设计方式,它们提供了灵活的代码组织和访问控制手段。成员内部类...

    第4章 接口、抽象类与包.ppt

    抽象类是不能实例化的类,通常包含抽象方法,即没有具体实现的方法。抽象方法的声明如下: ```java abstract returnType abstractMethodName([paramlist]); ``` 如果一个类包含抽象方法,那么该类必须声明为抽象类...

    接口,内部类,抽象类概念和区别

    抽象类是不能被实例化的类,它通常包含抽象方法(没有实现的方法)和非抽象方法(有实现的方法)。抽象类允许子类继承其部分或全部行为,并可以作为多个类的基类。在Java中,单继承限制了一个类只能直接继承一个抽象...

    Java 包的使用

    3. **默认包**:如果源文件没有声明包名,那么它就处于默认包中,默认包没有名称,但类之间不能互相引用,除非它们都在同一个目录下。 4. **包的层次结构**:通常,包的命名会反映出项目或公司的层次结构,例如`...

    1-JAVA类之一-JAVA类结构和main函数.rar

    5. **成员变量(字段)**:类的数据成员,可以是基本类型或引用类型,它们存储类实例的状态。 6. **构造函数**:用于创建类的实例,通常与类名相同,没有返回值。 7. **成员方法**:定义类的行为,包括实例方法和...

    删除无用的jar包的插件

    它们包含了各种预编译的类和资源,供开发者在项目中引用以实现特定功能。然而,随着时间的推移,项目可能会积累大量的jar包,其中可能包含许多未被使用的类和方法。这不仅会占用硬盘空间,还会增加构建时间和运行时...

    C++中指针和引用的区别

    4. 操作符:指针有解引用和地址操作符,而引用没有这些操作符,它直接代表所引用的对象。 5. 大小与存储:指针通常占用机器字长,而引用本质上是语法糖,不占额外的内存空间。 在实际编程中,我们根据需要选择使用...

    JAVA 内部类 PPT

    - 实例内部类实例持有对外部类实例的引用,可以访问外部类的所有非私有成员。 - 不能定义静态成员,只能定义实例成员。 - 同名成员变量或方法,使用`this`和`外部类名.this`区分。 10. **静态内部类特点** - ...

    java类文件结构(笔记).docx

    Java 类文件结构是Java虚拟机(JVM)执行的基础,它包含了构成Java程序的所有必要信息。Class文件是一种二进制格式,由8位字节组成,数据紧密排列,没有额外的分隔符,确保高效存储。Class文件由一系列的数据项组成...

Global site tag (gtag.js) - Google Analytics