Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个java文件中为多个包使用多个类_Java_Android - Fatal编程技术网

在一个java文件中为多个包使用多个类

在一个java文件中为多个包使用多个类,java,android,Java,Android,我在Android项目中使用了几个软件包。 e、 十: com.app.example->activities com.app.example->adapters 等等 我使用EventBus库(github.com/greenrobot/EventBus),在这里为我使用的每个事件创建一个CustomEvent类。e、 x.:LogOutEvent事件=新的LogOutEvent();EventBus.getDefault().post(事件);如果我有50个事件,我需要创建50个java文件

我在Android项目中使用了几个软件包。 e、 十:

com.app.example->activities

com.app.example->adapters

等等

我使用EventBus库(github.com/greenrobot/EventBus),在这里为我使用的每个事件创建一个CustomEvent类。e、 x.:LogOutEvent事件=新的LogOutEvent();EventBus.getDefault().post(事件);如果我有50个事件,我需要创建50个java文件

由于作用域的原因,我无法执行此操作:

public class Event1
{
        
}
    
class Event2
{
    
} 
这是:

public class Event1
{
    
}
    
public class Event2
{
    
}  

我没有使用您前面提到的库,但我认为它都是关于设计原则的,所以为什么不使用静态嵌套类

public class Events {
   // Try to write your global/common methods here
   public void stop(){

   }
   public void start(){

   }
    
    // your Inner classes
    public static class Event1 { }
    public static class Event2 { }
    public static class Event3 { }
    public static class Event4 { }
    public static class Event5 { }
}
或使用Java 8:

public interface IEvents {
    default void start(){

    }

    default void stop(){

    }
}

public class EventsImpl implements IEvents{

    // your Inner classes
    public static class Event1 { }
    public static class Event2 { }
    public static class Event3 { }
    public static class Event4 { }
    public static class Event5 { }
}
内存泄漏适用于非静态内部类,上面的示例使用较弱的引用来实现更干净的内存管理(静态内部类)。查看更多详细信息

您还可以按照自己的方式更改内部类的范围


我强烈建议您多考虑您存在的问题,以及您可以使用的设计原则。例如,尝试考虑每个事件的所有全局方法,这样就不会使用相同的事件方法编写类。

每个文件一个顶级类。这就是Java的工作方式,我知道。但是有没有一种正确的方法将其存储在类中呢?您还没有充分描述您的问题。“因为范围”?像你展示的那样,把课程公开,这很好。名字冲突?更改名称或使用完全限定的。编辑我的问题除了“将有很多文件”之外,您还没有提供基本原理,这是Java的编写方式。我也知道:)我的主要问题是我需要用事件保存类并在各种包中使用它。我不知道您需要多少类,但是为什么不创建更多的java类文件呢?”用事件保存类“你是什么意思?请详细描述您的问题我使用EventBus库()为我使用的每个事件创建CustomEvent类。e、 x.:LogOutEvent事件=新的LogOutEvent();EventBus.getDefault().post(事件);如果我有50个事件,我需要创建50个java文件。我能用这样的静态类解决内存泄漏问题吗?使用EventBus,我必须创建如下对象:Events.Event1 event=new Events.Event1();我编辑了我的帖子:内存泄漏是针对非静态内部类的,上面的示例使用较弱的引用来实现更干净的内存管理(静态),因此没有风险