Java类通常分为逻辑“块”。是否有标记这些部分的约定?理想情况下,主要的IDE将支持它。
我个人使用此方法:
//// Section name here ////
但是,某些编辑器似乎对此有问题。
例如,在Objective-C代码中,您可以使用以下方法:
#pragma mark -
#pragma mark Section name here
这将导致XCode中的菜单如下所示:
Java类通常分为逻辑“块”。是否有标记这些部分的约定?理想情况下,主要的IDE将支持它。
我个人使用此方法:
//// Section name here ////
但是,某些编辑器似乎对此有问题。
例如,在Objective-C代码中,您可以使用以下方法:
#pragma mark -
#pragma mark Section name here
这将导致XCode中的菜单如下所示:
Answers:
我个人使用80个字符的行分隔符,如下所示:
public class Client {
//================================================================================
// Properties
//================================================================================
private String name;
private boolean checked;
//================================================================================
// Constructors
//================================================================================
public Client() {
}
public Client(String name, boolean checked) {
this.name = name;
this.checked = checked;
}
//================================================================================
// Accessors
//================================================================================
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
}
当然,对于这么小的POJO来说,这似乎有点过大了,但是请相信我,它在某些大型项目中非常有用,因为我不得不浏览大型源文件并快速找到我感兴趣的方法。这也有助于理解源代码结构。
在Eclipse中,我创建了一组自定义模板(例如Eclipse的Preferences对话框中的Java-> Editor-> Templates),它们会生成这些栏。-sepa(用于访问器的SEParator)-sepp(用于属性的SEParator)-sepc(用于构造函数的SEParator)等
我还修改了标准的“新类”模板(“ Eclipse首选项”屏幕中的Java->代码样式->代码模板)
另外,还有一个旧的Eclipse插件,称为Coffee-bytes,它增强了Eclipse折叠部分代码的方式。我不知道它是否仍然有效,但是我建议可以通过添加特殊注释(例如// [SECTION]等)来定义任意可折叠区域。它在最新的Eclipse版本中仍然可能有效,因此请看一下。
对于intellij / android studio,有一个了不起的解决方案。
开头为:
//region Description
结束于:
//endregion
快捷方式位于菜单中,您可以使用Command+ Alt+ T(Mac)或Ctrl+ Alt+ T(Windows)打开
如果需要,您还可以添加自己的行以进行其他视觉分隔。可以像任何功能一样使用+/-按钮随意缩小和扩展该区域。您也可以使用Command+ Alt+ Period(Ctrl+ Alt+ Period)在区域之间导航
来源。
例:
//region Parceler Implementation
//---------------------------------------------------------------------------------------
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(this.die, 0);
dest.writeParcelable(this.dieSprite, 0);
}
private DieVm(Parcel in) {
this.die = in.readParcelable(Die.class.getClassLoader());
this.dieSprite = in.readParcelable(Sprite.class.getClassLoader());
}
public static final Parcelable.Creator<DieVm> CREATOR = new Parcelable.Creator<DieVm>() {
public DieVm createFromParcel(Parcel source) {
return new DieVm(source);
}
public DieVm[] newArray(int size) {
return new DieVm[size];
}
};
//---------------------------------------------------------------------------------------
//endregion
Eclipse定义了一个@category javadoc注释(滚动到标记为“ Category support”的部分),该注释允许在大纲视图中按类别进行过滤。不完全是您想要的。我很惊讶没有人编写过一个Eclipse插件,它提供的视图类似于您的屏幕快照。
在代码中使用不必要的注释/标记来帮助工作可能不是一个好习惯。我对xcode和Java开发几乎一无所知,但是所有主要的IDE支持都支持查找没有任何特殊标记(例如eclipse)的成员,并使用可以通过ctrl+O
Intellij 触发的大纲视图显示方法和成员(我更喜欢在mac上使用更多代码,并且具有社区版也具有相同的大纲概念,可以使用(ctrl + f12)进行快速访问。因此,我的意思是不要在代码中使用任何不必要的标记,因为所有(或至少良好/健全)的IDE都可以自动执行此操作。
据我所知,还没有将类成员分组在一起的受支持规范。您可以使用任何喜欢的注释约定,但是有可能它不受任何工具的支持。
最好通过继承或聚合将相关成员分组到单独的类中。这被认为是很好的OOP风格
除了提供Andrey的答案之外,要使用// region // endregion,我们还会在主要代码段中插入[BigAscii字母] [1]。快速滚动时,它确实很突出。这种方法的一个缺点是我无法搜索它,因此您需要像在下面一样在“横幅”下方添加一个搜索词。
块引用
// _ _____ _____ _ _
// | | | __ \ /\ | __ \ /\ | | | |
// | | | | | | / \ | |__) | / \ _ _| |_| |__
// | | | | | |/ /\ \ | ___/ / /\ \| | | | __| '_ \
// | |____| |__| / ____ \| | / ____ \ |_| | |_| | | |
// |______|_____/_/ \_\_| /_/ \_\__,_|\__|_| |_|
//
// Search here with: LDAP Auth
[1]:http : //patorjk.com/software/taag/#p=display&c=c%2B%2B&f=Big&t=LDAP身份验证
我会用javadoc ; 或将以下内容用作简单的“分隔符”(单行或三行):
/** RecyclerOnItemClickListener */
/**
* RecyclerOnItemClickListener
*/
因此,在IDE中,它以不同于醒目的注释灰色以外的其他颜色显示。
现代化的IDE允许您以多种不同方式查看代码,甚至重新组织代码。Eclipse甚至允许您在另一个面板中查看光标所在的代码的定义。
代码的任何自动重组都会导致这种标记失效。
如果要分组,请考虑将属于同一类的事物放在一起,将不属于不同类的事物放在一起。
如果可以对方法进行聚类,请专门为要在部分中捕获的概念创建另一个类。继续,创建文件是免费的。
对于IntelliJ,我喜欢:
public void ________________INIT__________________() {};
文件结构看起来很漂亮!