在一个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文件 由于作用域的原因,我无法执行此操作:在一个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文件
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();我编辑了我的帖子:内存泄漏是针对非静态内部类的,上面的示例使用较弱的引用来实现更干净的内存管理(静态),因此没有风险