Should I use static import?

前端 未结 7 599
天命终不由人
天命终不由人 2020-12-16 12:45

How important it is to convert all my import to static import? Why are people still reluctant to use static import?

相关标签:
7条回答
  • 2020-12-16 13:02

    I would say, never use wildcard static imports.

    Without wildcarding, on the as needed basis, I think it does reduce the clutter.

    0 讨论(0)
  • 2020-12-16 13:03

    I use a static import only in the most glaringly obvious situations. Remember: concise code is not always the same thing as readable code.

    0 讨论(0)
  • 2020-12-16 13:03

    Use of static import is preferred if you are using an IDE.

    0 讨论(0)
  • 2020-12-16 13:06

    As the docs say, use it sparingly. Look there for the justifications.

    0 讨论(0)
  • 2020-12-16 13:12

    This is a special case but also the perfect use case (and I use it in all my tests):

    import static junit.framework.Assert.*;
    

    Here, I find that this makes my tests more readable and it's obvious from where assertXXX come from. But this is an exception. In other situations, I find that static import make things more obscure, harder to read and I don't really use them.

    0 讨论(0)
  • 2020-12-16 13:14

    I use static import when working with JUnit's assert (import static org.junit.Assert.*;) and also when I have an enum that is very tied to the class in question.

    For example:

    Enum file:

    public enum MyEnum {
       A, B, C;
    }
    

    Class file:

    import static MyEnum.*;
    
    public class MyClass {
      MyEnum e;
    
      public setE(MyEnum newE) {
        if ( newE == A ) {
           // some verification
        }
        e = newE;
      }
    }
    

    Note how I was able to do newE == A, instead of newE == MyEnum.A. Comes in handy if you do a lot of these throughout the code.

    0 讨论(0)
提交回复
热议问题