使代码更具可读性

Posted

技术标签:

【中文标题】使代码更具可读性【英文标题】:Making a code more readable 【发布时间】:2012-07-02 03:02:36 【问题描述】:

我的应用程序中有两个名称相同的类,我无法重命名它们,其中一个来自 packageA,第二个来自 packageB,这个类的名称是 State,我必须在我的程序中的一个地方使用它,例如这个:

 Map<Integer,Set<org.omg.PortableServer.POAManagerPackage.State>>  

有什么办法(但使用这个类)使它更易读(稍微缩短它)?

【问题讨论】:

重复***.com/questions/2447880/… 今天学到:不能静态导入包,只能导入类型。这将是我的建议 【参考方案1】:

创建只有Set&lt;org.omg.PortableServer.POAManagerPackage.State&gt; 和所有需要的Set 方法的包装类。

在客户端的使用:

Map<Integer,GoodWrappingSetName> 

【讨论】:

【参考方案2】:

可能派生自要消除歧义的类之一。比如在POAState.java:

import org.omg.PortableServer.POAManagerPackage.State;

public class POAState extends State 

然后:

Map<Integer,Set<POAState>> my_map;

【讨论】:

【参考方案3】:

如果您在同一段代码(*.java 文件)中使用两个不同的State 类,那么答案是“否”,Java 不提供速记符号。您必须明确并包含完整的包名称以消除歧义。

@dantuch 提出了一个有趣的想法,但不是包装该类,如果您可以扩展其中一个,您可以创建一个空的 State 子类,它只是将其所有实现推迟到父类。

public MyState extends State 
    // no implementation required

然后你可以参考MyState

【讨论】:

以上是关于使代码更具可读性的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 中使用 extension 使项目更具可读性和效率 01

如何更改标签的背景颜色或以其他方式使它们更具可读性?

量角器 - 处理“then”承诺使它们更具可读性

如何使用背景/异步任务制作线性/更具可读性的 Java 代码

让你的JS代码更具可读性

What's new in C# 7.0