问题描述
我想知道在同一个类中使用 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)
解决方法
对此没有客观的答案。需要考虑的几点:
-
在一个类中有很多常量可能意味着这个类做了很多工作。看看您是否可以将类拆分为多个类,并根据这些类中的用法声明常量。
-
由于所有这些都是私有字段,请查看它们是否真的在同一个类中被多次使用。如果不是,您可以直接使用字符串而不是使用常量。缺点是,以后如果要在同一个类在不同的地方再次使用它,必须记住将其设为常量(非常容易忘记)。
-
(我不喜欢这个)我见过这样的情况,人们会有一个接口只用于保存常量,然后静态导入它们到类中以使用它。该接口就像是常量的大垃圾场。