Java中的每个文件一个类的规则让我有点困惑。我编写了一个Android应用程序,并试图实现这个问题的公认答案:
Common class for AsyncTask in Android?
它调用一个接口定义,类A实现该接口定义,而类B接受该接口定义作为其构造函数的参数。
所以我需要一个A.java和一个B.java,但是接口在哪里呢?它本身是否需要一个单独的java文件?我必须同时在A和B中定义它吗?如果不是,怎么导入呢?
此外,我将有大约10个不同的AsyncTask类,但我不想为每个类创建一个新文件。你有什么推荐的?有没有办法把所有10个类都放在一个文件里?或者我应该在类中创建一个很大的if/then块,并传递一个参数来告诉它我想让它完成10个不同任务中的哪一个?
发布于 2010-12-26 04:45:58
您必须将其放在AsyncTaskCompleteListener.java中。如果它在同一个包中,则不需要导入它。如果在不同的包中,可以使用import语句导入它。
我建议在进一步阅读之前先阅读java tutorial。
至于10+类-您可以在另一个类中使用public static class。这是可行的,但是每个类都有一个文件,这是您应该习惯的--这是首选的选项。仅当内部类与其所属类存在逻辑关联时,才使用内部静态类。
发布于 2010-12-26 04:49:21
接口在哪里?它本身是否需要一个单独的java文件?
是。您可以将接口和/或其中一个类设置为非公共的,但这样就不能在包之外使用它们。
我还将有大约10个不同的AsyncTask类,但我不想为每个类创建一个新文件。
为什么不行?在Java中,每个文件都有一个类或接口是通常的做法。我建议接受这个约定,因为试图违背它会给你带来无穷无尽的问题。
https://stackoverflow.com/questions/4531617
复制相似问题