同一类中的多个常量

问题描述

我想知道在同一个类中使用 final 常量的最佳方法是什么?因为我必须在同一个类中使用很多并且看起来很网格,谢谢。

如何使它看起来更具可读性,因为如果我需要存储更多变量,将会有很多......谢谢

public class Default {

private static final String CLASS_FILE_EXTENSION = ".class";

private static final String JAVA_PACKAGE = "java.";

private static final String NO_PREFIX = "";

private static final String SUFFIX = "sfx";

private static final String TEMP_SUFFIX = "tmp";

private static final String NO_ParaMETERS = "()";

private static final String STRING_DESCRIPTOR = "Ljava/lang/String;";

private static final String RETURNS_VOID = "V";

private static final String JAR = "jar";

private static final int ONLY = 0;

private static final int BUFFER_SIZE = 1024;

private static final int PACKAGE_LOOKUP = 0x8;

private static final int BASE_VERSION = 44;

private static final Class<?> NOT_FOUND = null;

private static final URL NOT_SEALED = null;

private final TypeDescription instrumentedType;

private final TypeAttributeAppender typeAttributeAppender;

private final AsmVisitorWrapper asmVisitorWrapper;

private final ClassFiLeversion classFiLeversion;

private final AuxiliaryType.NamingStrategy auxiliaryTypeNamingStrategy;

private final AnnotationValueFilter.Factory annotationValueFilterFactory;

private final AnnotationRetention annotationRetention;

private final Implementation.Context.Factory implementationContextFactory;

private final MethodGraph.Compiler methodGraphCompiler;

private final TypeValidation typeValidation;

private final ClassWriterStrategy classWriterStrategy;

private final LatentMatcher<? super MethodDescription> ignoredMethods;

private final List<DynamicType> auxiliaryTypes;

private final ClassFileLocator classFileLocator;

public Default(..... etc)  

解决方法

对此没有客观的答案。需要考虑的几点:

  1. 在一个类中有很多常量可能意味着这个类做了很多工作。看看您是否可以将类拆分为多个类,并根据这些类中的用法声明常量。

  2. 由于所有这些都是私有字段,请查看它们是否真的在同一个类中被多次使用。如果不是,您可以直接使用字符串而不是使用常量。缺点是,以后如果要在同一个类在不同的地方再次使用它,必须记住将其设为常量(非常容易忘记)。

  3. (我不喜欢这个)我见过这样的情况,人们会有一个接口只用于保存常量,然后静态导入它们到类中以使用它。该接口就像是常量的大垃圾场。